code optimization and demo

This commit is contained in:
sunkaixuna 2021-07-04 13:51:19 +08:00
parent b17ed51b60
commit e92a4be798
8 changed files with 33 additions and 35 deletions

View File

@ -38,7 +38,7 @@ namespace OrmTest
{
var list = new List<int>() { 1, 2, 3 };
var query1 = db.Queryable<Order>();
var queryable2 = db.Reportable(list).ToSingleColumnQueryable();
var queryable2 = db.Reportable(list).ToQueryable<int>();
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
}
@ -86,16 +86,16 @@ namespace OrmTest
}).ExecuteCommand();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
var queryableRight = db.Queryable<operateinfo>();
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM"))
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==x1.ColumnName.ToString("yyyy-MM"))
.GroupBy((x1,x2)=>x1.ColumnName)
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
.Select((x1, x2) => new
{
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")
date=x1.ColumnName.ToString("yyyy-MM")
}).ToList();
}

View File

@ -38,7 +38,7 @@ namespace OrmTest
{
var list = new List<int>() { 1, 2, 3 };
var query1 = db.Queryable<Order>();
var queryable2 = db.Reportable(list).ToSingleColumnQueryable();
var queryable2 = db.Reportable(list).ToQueryable<int>();
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
}
@ -86,16 +86,16 @@ namespace OrmTest
}).ExecuteCommand();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
var queryableRight = db.Queryable<operateinfo>();
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM"))
(x1, x2) => x2.operate_time.ToString("yyyy-MM")== x1.ColumnName .ToString("yyyy-MM"))
.GroupBy((x1,x2)=>x1.ColumnName)
.Where(x1=>SqlFunc.Between(SqlFunc.ToDate(x1.ColumnName),DateTime.Now.AddYears(-1),DateTime.Now))
.Where(x1=>SqlFunc.Between(x1.ColumnName,DateTime.Now.AddYears(-1),DateTime.Now))
.Select((x1, x2) => new
{
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")
date= x1.ColumnName.ToString("yyyy-MM")
}).ToList();
}

View File

@ -38,7 +38,7 @@ namespace OrmTest
{
var list = new List<int>() { 1, 2, 3 };
var query1 = db.Queryable<Order>();
var queryable2 = db.Reportable(list).ToSingleColumnQueryable();
var queryable2 = db.Reportable(list).ToQueryable<int>();
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
}
@ -86,17 +86,16 @@ namespace OrmTest
}).ExecuteCommand();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
var queryableRight = db.Queryable<operateinfo>();
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM"))
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==x1.ColumnName.ToString("yyyy-MM"))
.GroupBy((x1,x2)=>x1.ColumnName)
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
.Select((x1, x2) => new
{
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")
date=x1.ColumnName.ToString("yyyy-MM")
}).ToList();
}

View File

@ -38,7 +38,7 @@ namespace OrmTest
{
var list = new List<int>() { 1, 2, 3 };
var query1 = db.Queryable<Order>();
var queryable2 = db.Reportable(list).ToSingleColumnQueryable();
var queryable2 = db.Reportable(list).ToQueryable<int>();
var x = db.Queryable(query1, queryable2, (x1, x2) => x1.Id.Equals(x2.ColumnName))
.Select((x1, x2) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
}
@ -86,16 +86,16 @@ namespace OrmTest
}).ExecuteCommand();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
var queryableRight = db.Queryable<operateinfo>();
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM"))
(x1, x2) => x2.operate_time.ToString("yyyy-MM")== x1.ColumnName .ToString("yyyy-MM"))
.GroupBy((x1,x2)=>x1.ColumnName)
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
.Select((x1, x2) => new
{
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")
date=x1.ColumnName.ToString("yyyy-MM")
}).ToList();
}

View File

@ -29,10 +29,10 @@ namespace SqlSugar
Init();
}
public IReportable<T> MakeUp(Func<T, object> auto)
{
throw new NotImplementedException();
}
//public IReportable<T> MakeUp(Func<T, object> auto)
//{
// throw new NotImplementedException();
//}
public ISugarQueryable<T> ToQueryable()
{
@ -67,6 +67,10 @@ namespace SqlSugar
}
return this.Context.SqlQueryable<object>(sb.ToString()).Select<T>();
}
public ISugarQueryable<SingleColumnEntity<Y>> ToQueryable<Y>()
{
return ToQueryable().Select<SingleColumnEntity<Y>>();
}
private void Each<Y>(StringBuilder sb, List<Y> list)
{
@ -85,11 +89,6 @@ namespace SqlSugar
}
}
public ISugarQueryable<SingleColumnEntity> ToSingleColumnQueryable()
{
return ToQueryable().Select<SingleColumnEntity>();
}
private void ClassMethod<Y>(Y data, StringBuilder sb,bool isLast)
{
var columns = new StringBuilder();

View File

@ -6,8 +6,8 @@ using System.Threading.Tasks;
namespace SqlSugar
{
public class SingleColumnEntity
public class SingleColumnEntity<T>
{
public object ColumnName { get; set; }
public T ColumnName { get; set; }
}
}

View File

@ -8,8 +8,8 @@ namespace SqlSugar
{
public interface IReportable<T>
{
IReportable<T> MakeUp(Func<T,object> auto);
//IReportable<T> MakeUp(Func<T,object> auto);
ISugarQueryable<T> ToQueryable();
ISugarQueryable<SingleColumnEntity> ToSingleColumnQueryable();
ISugarQueryable<SingleColumnEntity<Y>> ToQueryable<Y>();
}
}

View File

@ -38,7 +38,7 @@ namespace OrmTest
{
var list = new List<int>() { 1, 2, 3 };
var query1 = db.Queryable<Order>();
var queryable2 = db.Reportable(list).ToSingleColumnQueryable();
var queryable2 = db.Reportable(list).ToQueryable<int>();
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
}
@ -86,16 +86,16 @@ namespace OrmTest
}).ExecuteCommand();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
var queryableRight = db.Queryable<operateinfo>();
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM"))
(x1, x2) => x2.operate_time.ToString("yyyy-MM")==x1.ColumnName.ToString("yyyy-MM"))
.GroupBy((x1,x2)=>x1.ColumnName)
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
.Select((x1, x2) => new
{
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
date=SqlFunc.ToDate(x1.ColumnName).ToString("yyyy-MM")
date=x1.ColumnName.ToString("yyyy-MM")
}).ToList();
}