mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +08:00
code optimization and demo
This commit is contained in:
parent
b17ed51b60
commit
e92a4be798
@ -38,7 +38,7 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
var list = new List<int>() { 1, 2, 3 };
|
var list = new List<int>() { 1, 2, 3 };
|
||||||
var query1 = db.Queryable<Order>();
|
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))
|
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
|
||||||
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
||||||
}
|
}
|
||||||
@ -86,16 +86,16 @@ namespace OrmTest
|
|||||||
}).ExecuteCommand();
|
}).ExecuteCommand();
|
||||||
|
|
||||||
|
|
||||||
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
|
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
|
||||||
var queryableRight = db.Queryable<operateinfo>();
|
var queryableRight = db.Queryable<operateinfo>();
|
||||||
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
|
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)
|
.GroupBy((x1,x2)=>x1.ColumnName)
|
||||||
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
||||||
.Select((x1, x2) => new
|
.Select((x1, x2) => new
|
||||||
{
|
{
|
||||||
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
|
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();
|
}).ToList();
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
var list = new List<int>() { 1, 2, 3 };
|
var list = new List<int>() { 1, 2, 3 };
|
||||||
var query1 = db.Queryable<Order>();
|
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))
|
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
|
||||||
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
||||||
}
|
}
|
||||||
@ -86,16 +86,16 @@ namespace OrmTest
|
|||||||
}).ExecuteCommand();
|
}).ExecuteCommand();
|
||||||
|
|
||||||
|
|
||||||
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
|
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
|
||||||
var queryableRight = db.Queryable<operateinfo>();
|
var queryableRight = db.Queryable<operateinfo>();
|
||||||
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
|
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)
|
.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
|
.Select((x1, x2) => new
|
||||||
{
|
{
|
||||||
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
|
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();
|
}).ToList();
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
var list = new List<int>() { 1, 2, 3 };
|
var list = new List<int>() { 1, 2, 3 };
|
||||||
var query1 = db.Queryable<Order>();
|
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))
|
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
|
||||||
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
||||||
}
|
}
|
||||||
@ -86,17 +86,16 @@ namespace OrmTest
|
|||||||
}).ExecuteCommand();
|
}).ExecuteCommand();
|
||||||
|
|
||||||
|
|
||||||
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
|
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
|
||||||
var queryableRight = db.Queryable<operateinfo>();
|
var queryableRight = db.Queryable<operateinfo>();
|
||||||
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
|
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)
|
.GroupBy((x1,x2)=>x1.ColumnName)
|
||||||
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
||||||
.Select((x1, x2) => new
|
.Select((x1, x2) => new
|
||||||
{
|
{
|
||||||
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
|
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();
|
}).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
var list = new List<int>() { 1, 2, 3 };
|
var list = new List<int>() { 1, 2, 3 };
|
||||||
var query1 = db.Queryable<Order>();
|
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))
|
var x = db.Queryable(query1, queryable2, (x1, x2) => x1.Id.Equals(x2.ColumnName))
|
||||||
.Select((x1, x2) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
.Select((x1, x2) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
||||||
}
|
}
|
||||||
@ -86,16 +86,16 @@ namespace OrmTest
|
|||||||
}).ExecuteCommand();
|
}).ExecuteCommand();
|
||||||
|
|
||||||
|
|
||||||
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
|
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
|
||||||
var queryableRight = db.Queryable<operateinfo>();
|
var queryableRight = db.Queryable<operateinfo>();
|
||||||
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
|
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)
|
.GroupBy((x1,x2)=>x1.ColumnName)
|
||||||
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
||||||
.Select((x1, x2) => new
|
.Select((x1, x2) => new
|
||||||
{
|
{
|
||||||
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
|
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();
|
}).ToList();
|
||||||
}
|
}
|
||||||
|
@ -29,10 +29,10 @@ namespace SqlSugar
|
|||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IReportable<T> MakeUp(Func<T, object> auto)
|
//public IReportable<T> MakeUp(Func<T, object> auto)
|
||||||
{
|
//{
|
||||||
throw new NotImplementedException();
|
// throw new NotImplementedException();
|
||||||
}
|
//}
|
||||||
|
|
||||||
public ISugarQueryable<T> ToQueryable()
|
public ISugarQueryable<T> ToQueryable()
|
||||||
{
|
{
|
||||||
@ -67,6 +67,10 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return this.Context.SqlQueryable<object>(sb.ToString()).Select<T>();
|
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)
|
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)
|
private void ClassMethod<Y>(Y data, StringBuilder sb,bool isLast)
|
||||||
{
|
{
|
||||||
var columns = new StringBuilder();
|
var columns = new StringBuilder();
|
||||||
|
@ -6,8 +6,8 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace SqlSugar
|
namespace SqlSugar
|
||||||
{
|
{
|
||||||
public class SingleColumnEntity
|
public class SingleColumnEntity<T>
|
||||||
{
|
{
|
||||||
public object ColumnName { get; set; }
|
public T ColumnName { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,8 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
public interface IReportable<T>
|
public interface IReportable<T>
|
||||||
{
|
{
|
||||||
IReportable<T> MakeUp(Func<T,object> auto);
|
//IReportable<T> MakeUp(Func<T,object> auto);
|
||||||
ISugarQueryable<T> ToQueryable();
|
ISugarQueryable<T> ToQueryable();
|
||||||
ISugarQueryable<SingleColumnEntity> ToSingleColumnQueryable();
|
ISugarQueryable<SingleColumnEntity<Y>> ToQueryable<Y>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
var list = new List<int>() { 1, 2, 3 };
|
var list = new List<int>() { 1, 2, 3 };
|
||||||
var query1 = db.Queryable<Order>();
|
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))
|
var x = db.Queryable(queryable2, query1, (x2, x1) => x1.Id.Equals(x2.ColumnName))
|
||||||
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
.Select((x2, x1) => new { x = x1.Id, x2 = x2.ColumnName }).ToList();
|
||||||
}
|
}
|
||||||
@ -86,16 +86,16 @@ namespace OrmTest
|
|||||||
}).ExecuteCommand();
|
}).ExecuteCommand();
|
||||||
|
|
||||||
|
|
||||||
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToSingleColumnQueryable();
|
var queryableLeft = db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryable<DateTime>();
|
||||||
var queryableRight = db.Queryable<operateinfo>();
|
var queryableRight = db.Queryable<operateinfo>();
|
||||||
var list= db.Queryable(queryableLeft, queryableRight, JoinType.Left,
|
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)
|
.GroupBy((x1,x2)=>x1.ColumnName)
|
||||||
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
.Where(x1=>SqlFunc.Between(x1.ColumnName,"2021-01-01",DateTime.Now))
|
||||||
.Select((x1, x2) => new
|
.Select((x1, x2) => new
|
||||||
{
|
{
|
||||||
count=SqlFunc.AggregateSum(SqlFunc.IIF(x2.id>0,1,0)) ,
|
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();
|
}).ToList();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user