mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-25 01:14:33 +08:00
Update demo
This commit is contained in:
parent
e0e9c37c05
commit
e5b72e1482
@ -33,10 +33,10 @@ namespace OrmTest
|
|||||||
var db = GetInstance();
|
var db = GetInstance();
|
||||||
var dbTime = db.GetDate();
|
var dbTime = db.GetDate();
|
||||||
var getFirst = db.Queryable<Order>().OrderBy(x => Convert.ToInt32(x.Price), OrderByType.Asc).First();
|
var getFirst = db.Queryable<Order>().OrderBy(x => Convert.ToInt32(x.Price), OrderByType.Asc).First();
|
||||||
var getAll = db.Queryable<Order>().Where(it=> SqlFunc.EqualsNull(it.Name,null)).ToList();
|
var getAll = db.Queryable<Order>().Where(it => SqlFunc.EqualsNull(it.Name, null)).ToList();
|
||||||
var getOrderBy = db.Queryable<Order>().OrderBy(it => it.Name,OrderByType.Desc).ToList();
|
var getOrderBy = db.Queryable<Order>().OrderBy(it => it.Name, OrderByType.Desc).ToList();
|
||||||
var getOrderBy2 = db.Queryable<Order>().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList();
|
var getOrderBy2 = db.Queryable<Order>().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList();
|
||||||
var getOrderBy3 = db.Queryable<Order>().OrderBy(it =>new { it.Name,it.Id}).ToList();
|
var getOrderBy3 = db.Queryable<Order>().OrderBy(it => new { it.Name, it.Id }).ToList();
|
||||||
var getRandom = db.Queryable<Order>().OrderBy(it => SqlFunc.GetRandom()).First();
|
var getRandom = db.Queryable<Order>().OrderBy(it => SqlFunc.GetRandom()).First();
|
||||||
var getByPrimaryKey = db.Queryable<Order>().InSingle(2);
|
var getByPrimaryKey = db.Queryable<Order>().InSingle(2);
|
||||||
var getSingleOrDefault = db.Queryable<Order>().Where(it => it.Id == 1).Single();
|
var getSingleOrDefault = db.Queryable<Order>().Where(it => it.Id == 1).Single();
|
||||||
@ -47,14 +47,14 @@ namespace OrmTest
|
|||||||
var getByFuns2 = db.Queryable<Order>().GroupBy(it => it.Name).Select(it => SqlFunc.AggregateDistinctCount(it.Price)).ToList();
|
var getByFuns2 = db.Queryable<Order>().GroupBy(it => it.Name).Select(it => SqlFunc.AggregateDistinctCount(it.Price)).ToList();
|
||||||
var getDicionary = db.Queryable<Order>().ToDictionary(it => it.Id, it => it.Name);
|
var getDicionary = db.Queryable<Order>().ToDictionary(it => it.Id, it => it.Name);
|
||||||
var getDicionaryList = db.Queryable<Order>().ToDictionaryList();
|
var getDicionaryList = db.Queryable<Order>().ToDictionaryList();
|
||||||
var getTest = db.Queryable<Order>().Where(it =>string.IsNullOrWhiteSpace( it.Name)).ToList();
|
var getTest = db.Queryable<Order>().Where(it => string.IsNullOrWhiteSpace(it.Name)).ToList();
|
||||||
var test01 = db.Queryable<Order>().PartitionBy(it => it.Id).ToList();
|
var test01 = db.Queryable<Order>().PartitionBy(it => it.Id).ToList();
|
||||||
var q1 = db.Queryable<Order>().Take(1);
|
var q1 = db.Queryable<Order>().Take(1);
|
||||||
var q2 = db.Queryable<Order>().Take(2);
|
var q2 = db.Queryable<Order>().Take(2);
|
||||||
var test02 = db.Union(q1, q2).ToList();
|
var test02 = db.Union(q1, q2).ToList();
|
||||||
var test03 = db.Queryable<Order>().Take(1).ToList();
|
var test03 = db.Queryable<Order>().Take(1).ToList();
|
||||||
var dp = DateTime.Now;
|
var dp = DateTime.Now;
|
||||||
var test05 = db.Queryable<Order>().Where(it => it.CreateTime.Month== dp.Month).ToList();
|
var test05 = db.Queryable<Order>().Where(it => it.CreateTime.Month == dp.Month).ToList();
|
||||||
var test06 = db.Queryable<Order>()
|
var test06 = db.Queryable<Order>()
|
||||||
.ToPivotTable(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
.ToPivotTable(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
||||||
|
|
||||||
@ -64,20 +64,21 @@ namespace OrmTest
|
|||||||
var test08 = db.Queryable<Order>()
|
var test08 = db.Queryable<Order>()
|
||||||
.ToPivotJson(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
.ToPivotJson(it => it.Id, it => it.Name, it => it.Sum(x => x.Price));
|
||||||
|
|
||||||
var test09 = db.Queryable<Order>().PartitionBy(it=>it.Id).ToPageListAsync(1,2,0);
|
var test09 = db.Queryable<Order>().PartitionBy(it => it.Id).ToPageListAsync(1, 2, 0);
|
||||||
test09.Wait();
|
test09.Wait();
|
||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
var test10 = db.Queryable<Order>().ToPageList(1, 2, ref c);
|
var test10 = db.Queryable<Order>().ToPageList(1, 2, ref c);
|
||||||
var test11 = db.Queryable<Order>().GroupBy(it=>new { it.CreateTime.Year }).Select(it=>it.CreateTime.Year).ToList();
|
var test11 = db.Queryable<Order>().GroupBy(it => new { it.CreateTime.Year }).Select(it => it.CreateTime.Year).ToList();
|
||||||
var test12 = db.Queryable<Order>().GroupBy(it => it.CreateTime.Date ).Select(it => it.CreateTime.Date).ToList();
|
var test12 = db.Queryable<Order>().GroupBy(it => it.CreateTime.Date).Select(it => it.CreateTime.Date).ToList();
|
||||||
var test13 = db.Queryable<Order>().GroupBy(it => new { it.CreateTime.Date ,it.CreateTime.Year,it.CreateTime.Minute })
|
var test13 = db.Queryable<Order>().GroupBy(it => new { it.CreateTime.Date, it.CreateTime.Year, it.CreateTime.Minute })
|
||||||
.Select(it => new { it.CreateTime.Date, it.CreateTime.Year, it.CreateTime.Minute }).ToList();
|
.Select(it => new { it.CreateTime.Date, it.CreateTime.Year, it.CreateTime.Minute }).ToList();
|
||||||
var test14 = db.Queryable<Order>()
|
var test14 = db.Queryable<Order>()
|
||||||
.GroupBy(it => it.CreateTime.Year )
|
.GroupBy(it => it.CreateTime.Year)
|
||||||
.GroupBy(it => it.CreateTime.Second)
|
.GroupBy(it => it.CreateTime.Second)
|
||||||
.GroupBy(it => it.CreateTime.Date)
|
.GroupBy(it => it.CreateTime.Date)
|
||||||
.Select(it => new {
|
.Select(it => new
|
||||||
|
{
|
||||||
it.CreateTime.Year,
|
it.CreateTime.Year,
|
||||||
it.CreateTime.Second,
|
it.CreateTime.Second,
|
||||||
it.CreateTime.Date
|
it.CreateTime.Date
|
||||||
@ -87,7 +88,7 @@ namespace OrmTest
|
|||||||
))
|
))
|
||||||
.Select<ViewOrder>().ToList();
|
.Select<ViewOrder>().ToList();
|
||||||
var test16 = db.Queryable<Order>().Select(it => SqlFunc.SqlServer_DateDiff("day", DateTime.Now.AddDays(-1), DateTime.Now)).ToList();
|
var test16 = db.Queryable<Order>().Select(it => SqlFunc.SqlServer_DateDiff("day", DateTime.Now.AddDays(-1), DateTime.Now)).ToList();
|
||||||
var test17 =
|
var test17 =
|
||||||
db.Queryable<Order>()
|
db.Queryable<Order>()
|
||||||
.Select<Order>()
|
.Select<Order>()
|
||||||
.MergeTable()
|
.MergeTable()
|
||||||
@ -96,26 +97,27 @@ namespace OrmTest
|
|||||||
Name = SqlFunc.Subqueryable<Order>().WithNoLock().Select(s => s.Name)
|
Name = SqlFunc.Subqueryable<Order>().WithNoLock().Select(s => s.Name)
|
||||||
}).ToList(); ;
|
}).ToList(); ;
|
||||||
var test18 = db.UnionAll(
|
var test18 = db.UnionAll(
|
||||||
db.Queryable<Order>() ,
|
db.Queryable<Order>(),
|
||||||
db.Queryable<Order>()
|
db.Queryable<Order>()
|
||||||
)
|
)
|
||||||
.Select(it=>new ViewOrder(){
|
.Select(it => new ViewOrder()
|
||||||
Name=SqlFunc.Subqueryable<Order>().Select(s=>s.Name)
|
{
|
||||||
}).ToList();
|
Name = SqlFunc.Subqueryable<Order>().Select(s => s.Name)
|
||||||
|
}).ToList();
|
||||||
var test19 = db.Queryable<Order>().Select<ViewOrder>().ToList();
|
var test19 = db.Queryable<Order>().Select<ViewOrder>().ToList();
|
||||||
var test20 = db.Queryable<Order>().LeftJoin<Custom>((o, cs) =>o.Id==cs.Id)
|
var test20 = db.Queryable<Order>().LeftJoin<Custom>((o, cs) => o.Id == cs.Id)
|
||||||
.ToDictionary(it => it.Id, it => it.Name);
|
.ToDictionary(it => it.Id, it => it.Name);
|
||||||
|
|
||||||
var test21 = db.Queryable<Order>().Where(it=>it.Id.ToString()==1.ToString()).Select(it => it.CreateTime.ToString("24")).First();
|
var test21 = db.Queryable<Order>().Where(it => it.Id.ToString() == 1.ToString()).Select(it => it.CreateTime.ToString("24")).First();
|
||||||
var test22 = db.Queryable<Order>().Where(it => it.Id.ToString() == 1.ToString()).Select(it => SqlFunc.AggregateDistinctCount(it.CreateTime)).First();
|
var test22 = db.Queryable<Order>().Where(it => it.Id.ToString() == 1.ToString()).Select(it => SqlFunc.AggregateDistinctCount(it.CreateTime)).First();
|
||||||
var test23 = db.Queryable<Order>().Where(it =>true).Select(it => new { x1 = it.CreateTime.ToString("yyyy-MM") ,it.CreateTime}).ToList();
|
var test23 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.ToString("yyyy-MM"), it.CreateTime }).ToList();
|
||||||
var test24 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.ToString("yyyy-MM-dd _ HH _ mm _ ss "), it.CreateTime }).ToList();
|
var test24 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.ToString("yyyy-MM-dd _ HH _ mm _ ss "), it.CreateTime }).ToList();
|
||||||
var test25 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.Month,x2=DateTime.Now.Month}).ToList();
|
var test25 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.Month, x2 = DateTime.Now.Month }).ToList();
|
||||||
var test26 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.Day, x2 = DateTime.Now.Day }).ToList();
|
var test26 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.Day, x2 = DateTime.Now.Day }).ToList();
|
||||||
var test27 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.Year, x2 = DateTime.Now.Year }).ToList();
|
var test27 = db.Queryable<Order>().Where(it => true).Select(it => new { x1 = it.CreateTime.Year, x2 = DateTime.Now.Year }).ToList();
|
||||||
var test28 = db.Queryable<Order>().Select(it=>SqlFunc.DateDiff(DateType.Day,Convert.ToDateTime("2021-1-1"),Convert.ToDateTime("2021-1-12"))).ToList();
|
var test28 = db.Queryable<Order>().Select(it => SqlFunc.DateDiff(DateType.Day, Convert.ToDateTime("2021-1-1"), Convert.ToDateTime("2021-1-12"))).ToList();
|
||||||
var test29 = db.Queryable<Order>().Select(it =>new {x= SqlFunc.LessThan(1, 2) }).ToList();
|
var test29 = db.Queryable<Order>().Select(it => new { x = SqlFunc.LessThan(1, 2) }).ToList();
|
||||||
var test30= db.Queryable<Order>().Select(it => new { x = SqlFunc.LessThanOrEqual(1, 2) }).ToList();
|
var test30 = db.Queryable<Order>().Select(it => new { x = SqlFunc.LessThanOrEqual(1, 2) }).ToList();
|
||||||
var test31 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThan(1, 2) }).ToList();
|
var test31 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThan(1, 2) }).ToList();
|
||||||
var test32 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThanOrEqual(1, 2) }).ToList();
|
var test32 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThanOrEqual(1, 2) }).ToList();
|
||||||
List<Order> result = new List<Order>();
|
List<Order> result = new List<Order>();
|
||||||
@ -123,27 +125,28 @@ namespace OrmTest
|
|||||||
{
|
{
|
||||||
result.Add(it);
|
result.Add(it);
|
||||||
|
|
||||||
},10);
|
}, 10);
|
||||||
result = new List<Order>();
|
result = new List<Order>();
|
||||||
int count = 0;
|
int count = 0;
|
||||||
db.Queryable<Order>().ForEachByPage(it =>
|
db.Queryable<Order>().ForEachByPage(it =>
|
||||||
{
|
{
|
||||||
result.Add(it);
|
result.Add(it);
|
||||||
|
|
||||||
},2,10,ref count,5);
|
}, 2, 10, ref count, 5);
|
||||||
var test33= db.Queryable<Order>().ToList();
|
var test33 = db.Queryable<Order>().ToList();
|
||||||
db.CurrentConnectionConfig.SqlMiddle = new SqlMiddle
|
db.CurrentConnectionConfig.SqlMiddle = new SqlMiddle
|
||||||
{
|
{
|
||||||
IsSqlMiddle=true,
|
IsSqlMiddle = true,
|
||||||
ExecuteCommand = (s, p)=>{ return s.Length; }
|
ExecuteCommand = (s, p) => { return s.Length; }
|
||||||
|
|
||||||
};
|
};
|
||||||
var five=db.Ado.ExecuteCommand("11111");
|
var five = db.Ado.ExecuteCommand("11111");
|
||||||
db.CurrentConnectionConfig.SqlMiddle = null;
|
db.CurrentConnectionConfig.SqlMiddle = null;
|
||||||
db.GetConnectionWithAttr<Order>().Queryable<Order>().ToList();
|
db.GetConnectionWithAttr<Order>().Queryable<Order>().ToList();
|
||||||
var test34 = db.Queryable<Order>().OrderBy(it=>new {
|
var test34 = db.Queryable<Order>().OrderBy(it => new
|
||||||
id= it.Id,
|
{
|
||||||
name=SqlFunc.Asc(it.Name),
|
id = it.Id,
|
||||||
|
name = SqlFunc.Asc(it.Name),
|
||||||
}).ToList();
|
}).ToList();
|
||||||
var dr = new Dictionary<string, object>();
|
var dr = new Dictionary<string, object>();
|
||||||
dr.Add("Id", 1);
|
dr.Add("Id", 1);
|
||||||
@ -153,31 +156,31 @@ namespace OrmTest
|
|||||||
dr2.Add("Name", "2");
|
dr2.Add("Name", "2");
|
||||||
var test35 = db.Queryable<object>().AS("[order]").WhereColumns(new List<Dictionary<string, object>>() { dr, dr2 }).ToDataTable();
|
var test35 = db.Queryable<object>().AS("[order]").WhereColumns(new List<Dictionary<string, object>>() { dr, dr2 }).ToDataTable();
|
||||||
var test36 = db.Queryable<Order>().Take(1).ToList();
|
var test36 = db.Queryable<Order>().Take(1).ToList();
|
||||||
var test37= db.Queryable<Order>().First();
|
var test37 = db.Queryable<Order>().First();
|
||||||
var test38 = db.Queryable<Order>().Take(2).ToList();
|
var test38 = db.Queryable<Order>().Take(2).ToList();
|
||||||
var test39 = db.Queryable<Order>().Take(1).OrderBy(it => it.Id).ToList();
|
var test39 = db.Queryable<Order>().Take(1).OrderBy(it => it.Id).ToList();
|
||||||
var test40 = db.Queryable<Order>().OrderBy(it => it.Id).First();
|
var test40 = db.Queryable<Order>().OrderBy(it => it.Id).First();
|
||||||
var test41 = db.Queryable<Order>().Take(2).OrderBy(it => it.Id).ToList();
|
var test41 = db.Queryable<Order>().Take(2).OrderBy(it => it.Id).ToList();
|
||||||
var test42 = db.Queryable<Order>().Take(2).OrderBy(it => it.Id).ToPageList(1,2);
|
var test42 = db.Queryable<Order>().Take(2).OrderBy(it => it.Id).ToPageList(1, 2);
|
||||||
var test43 = db.Queryable<Order>().Take(2).ToPageList(1, 2);
|
var test43 = db.Queryable<Order>().Take(2).ToPageList(1, 2);
|
||||||
Dictionary<string, object> whereDc = new Dictionary<string, object>();
|
Dictionary<string, object> whereDc = new Dictionary<string, object>();
|
||||||
whereDc.Add("id", 1);
|
whereDc.Add("id", 1);
|
||||||
whereDc.Add("name", null);
|
whereDc.Add("name", null);
|
||||||
var test44=db.Queryable<Order>().WhereColumns(new List<Dictionary<string, object>>() {
|
var test44 = db.Queryable<Order>().WhereColumns(new List<Dictionary<string, object>>() {
|
||||||
whereDc
|
whereDc
|
||||||
}).ToList();
|
}).ToList();
|
||||||
var test45 = db.Queryable<Order>().
|
var test45 = db.Queryable<Order>().
|
||||||
Where(it=>it.Price==0?true:it.Name==it.Name)
|
Where(it => it.Price == 0 ? true : it.Name == it.Name)
|
||||||
.ToList();
|
.ToList();
|
||||||
var num = 3;
|
var num = 3;
|
||||||
var test46 = db.Queryable<Order>()
|
var test46 = db.Queryable<Order>()
|
||||||
.Where(it=>-it.Id==1)
|
.Where(it => -it.Id == 1)
|
||||||
.Where(it => DateTime.Now.AddDays(-num) ==DateTime.Now.Date)
|
.Where(it => DateTime.Now.AddDays(-num) == DateTime.Now.Date)
|
||||||
.ToList();
|
.ToList();
|
||||||
var dr3 = new Dictionary<string, object>();
|
var dr3 = new Dictionary<string, object>();
|
||||||
dr3.Add("Id", 0);
|
dr3.Add("Id", 0);
|
||||||
dr3.Add("Name",null);
|
dr3.Add("Name", null);
|
||||||
db.Queryable<Order>().WhereColumns(dr3,true).ToList();
|
db.Queryable<Order>().WhereColumns(dr3, true).ToList();
|
||||||
Console.WriteLine("#### Examples End ####");
|
Console.WriteLine("#### Examples End ####");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,7 +191,7 @@ namespace OrmTest
|
|||||||
var db = GetInstance();
|
var db = GetInstance();
|
||||||
List<Order> list = db.Queryable<Order>().ToList();
|
List<Order> list = db.Queryable<Order>().ToList();
|
||||||
|
|
||||||
var x2=db.Ado.SqlQueryAsync<Order>("select * from [Order] ");
|
var x2 = db.Ado.SqlQueryAsync<Order>("select * from [Order] ");
|
||||||
x2.Wait();
|
x2.Wait();
|
||||||
var x22 = db.Ado.GetScalarAsync("select * from [Order] ");
|
var x22 = db.Ado.GetScalarAsync("select * from [Order] ");
|
||||||
x22.Wait();
|
x22.Wait();
|
||||||
@ -205,8 +208,8 @@ namespace OrmTest
|
|||||||
var dynamic = db.Queryable<Order>().Select<dynamic>().ToList();
|
var dynamic = db.Queryable<Order>().Select<dynamic>().ToList();
|
||||||
|
|
||||||
var viewModel = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
var viewModel = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
||||||
JoinType.Left, o.Id == i.OrderId ,
|
JoinType.Left, o.Id == i.OrderId,
|
||||||
JoinType.Left, o.CustomId == c.Id
|
JoinType.Left, o.CustomId == c.Id
|
||||||
))
|
))
|
||||||
.Select<ViewOrder>().ToList();
|
.Select<ViewOrder>().ToList();
|
||||||
|
|
||||||
@ -214,13 +217,13 @@ namespace OrmTest
|
|||||||
JoinType.Left, o.Id == i.OrderId,
|
JoinType.Left, o.Id == i.OrderId,
|
||||||
JoinType.Left, o.CustomId == c.Id
|
JoinType.Left, o.CustomId == c.Id
|
||||||
))
|
))
|
||||||
.Select((o, i, c) => new { orderName = o.Name, cusName=c.Name }).ToList();
|
.Select((o, i, c) => new { orderName = o.Name, cusName = c.Name }).ToList();
|
||||||
|
|
||||||
var newClass = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
var newClass = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
||||||
JoinType.Left, o.Id == i.OrderId,
|
JoinType.Left, o.Id == i.OrderId,
|
||||||
JoinType.Left, o.CustomId == c.Id
|
JoinType.Left, o.CustomId == c.Id
|
||||||
))
|
))
|
||||||
.Select((o, i, c) => new ViewOrder { Name=o.Name, CustomName=c.Name }).ToList();
|
.Select((o, i, c) => new ViewOrder { Name = o.Name, CustomName = c.Name }).ToList();
|
||||||
|
|
||||||
|
|
||||||
var oneClass = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
var oneClass = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
||||||
@ -233,7 +236,7 @@ namespace OrmTest
|
|||||||
JoinType.Left, o.Id == i.OrderId,
|
JoinType.Left, o.Id == i.OrderId,
|
||||||
JoinType.Left, o.CustomId == c.Id
|
JoinType.Left, o.CustomId == c.Id
|
||||||
))
|
))
|
||||||
.Select((o, i, c) => new { o,i}).ToList();
|
.Select((o, i, c) => new { o, i }).ToList();
|
||||||
|
|
||||||
List<Dictionary<string, object>> ListDic = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
List<Dictionary<string, object>> ListDic = db.Queryable<Order, OrderItem, Custom>((o, i, c) => new JoinQueryInfos(
|
||||||
JoinType.Left, o.Id == i.OrderId,
|
JoinType.Left, o.Id == i.OrderId,
|
||||||
@ -251,7 +254,7 @@ namespace OrmTest
|
|||||||
|
|
||||||
var list = db.Queryable<Order>().Take(10).Select(it => new
|
var list = db.Queryable<Order>().Take(10).Select(it => new
|
||||||
{
|
{
|
||||||
customName=SqlFunc.Subqueryable<Custom>().Where("it.CustomId=id").Select(s=>s.Name),
|
customName = SqlFunc.Subqueryable<Custom>().Where("it.CustomId=id").Select(s => s.Name),
|
||||||
customName2 = SqlFunc.Subqueryable<Custom>().Where("it.CustomId = id").Where(s => true).Select(s => s.Name)
|
customName2 = SqlFunc.Subqueryable<Custom>().Where("it.CustomId = id").Where(s => true).Select(s => s.Name)
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
@ -261,28 +264,30 @@ namespace OrmTest
|
|||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
var list2 = db.Queryable<Order>().Where(it =>
|
var list2 = db.Queryable<Order>().Where(it =>
|
||||||
SqlFunc.Subqueryable<OrderItem>()
|
SqlFunc.Subqueryable<OrderItem>()
|
||||||
.LeftJoin<OrderItem>((i,z)=>i.ItemId==z.ItemId)
|
.LeftJoin<OrderItem>((i, z) => i.ItemId == z.ItemId)
|
||||||
.InnerJoin<OrderItem>((i,z,y) => i.ItemId == z.ItemId)
|
.InnerJoin<OrderItem>((i, z, y) => i.ItemId == z.ItemId)
|
||||||
.InnerJoin<OrderItem>((i,z,y,h) => i.ItemId == z.ItemId)
|
.InnerJoin<OrderItem>((i, z, y, h) => i.ItemId == z.ItemId)
|
||||||
.InnerJoin<OrderItem>((i, z, y, h, n) => i.ItemId == z.ItemId)
|
.InnerJoin<OrderItem>((i, z, y, h, n) => i.ItemId == z.ItemId)
|
||||||
.Where((i, z) => i.ItemId == z.ItemId)
|
.Where((i, z) => i.ItemId == z.ItemId)
|
||||||
.Any()
|
.Any()
|
||||||
).ToList();
|
).ToList();
|
||||||
|
|
||||||
var list3 = db.Queryable<Order>().Select(it => new
|
var list3 = db.Queryable<Order>().Select(it => new
|
||||||
{
|
{
|
||||||
customName = SqlFunc.Subqueryable<Custom>().Where(s=>s.Id==it.CustomId).GroupBy(s=>s.Name).Having(s=>SqlFunc.AggregateCount(s.Id)>0).Select(s => s.Name)
|
customName = SqlFunc.Subqueryable<Custom>().Where(s => s.Id == it.CustomId).GroupBy(s => s.Name).Having(s => SqlFunc.AggregateCount(s.Id) > 0).Select(s => s.Name)
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
var exp = Expressionable.Create<Custom>().And(s => s.Id==1).ToExpression();
|
var exp = Expressionable.Create<Custom>().And(s => s.Id == 1).ToExpression();
|
||||||
var list4 = db.Queryable<Order>().Select(it => new
|
var list4 = db.Queryable<Order>().Select(it => new
|
||||||
{
|
{
|
||||||
customName = SqlFunc.Subqueryable<Custom>().Where(exp).Where(exp).GroupBy(s => s.Name).Having(s => SqlFunc.AggregateCount(s.Id) > 0).Select(s => s.Name)
|
customName = SqlFunc.Subqueryable<Custom>().Where(exp).Where(exp).GroupBy(s => s.Name).Having(s => SqlFunc.AggregateCount(s.Id) > 0).Select(s => s.Name)
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var list5 = db.Queryable<Order>().Where(it =>
|
var list5 = db.Queryable<Order>().Where(it =>
|
||||||
SqlFunc.Subqueryable<OrderItem>()
|
SqlFunc.Subqueryable<OrderItem>()
|
||||||
.LeftJoin<OrderItem>((i, y) => i.ItemId == y.ItemId)
|
.LeftJoin<OrderItem>((i, y) => i.ItemId == y.ItemId)
|
||||||
@ -290,6 +295,12 @@ namespace OrmTest
|
|||||||
.Where(i => i.ItemId == 1)
|
.Where(i => i.ItemId == 1)
|
||||||
.Any()
|
.Any()
|
||||||
).ToList();
|
).ToList();
|
||||||
|
|
||||||
|
var list6 = db.Queryable<Order>() .Select(it => new
|
||||||
|
{
|
||||||
|
customName = SqlFunc.Subqueryable<Custom>()
|
||||||
|
.Where(s => s.Id == it.CustomId).Count()
|
||||||
|
}).ToList();
|
||||||
Console.WriteLine("#### Subquery End ####");
|
Console.WriteLine("#### Subquery End ####");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -298,13 +309,13 @@ namespace OrmTest
|
|||||||
Console.WriteLine("");
|
Console.WriteLine("");
|
||||||
Console.WriteLine("#### SqlFunc Start ####");
|
Console.WriteLine("#### SqlFunc Start ####");
|
||||||
var db = GetInstance();
|
var db = GetInstance();
|
||||||
var index= db.Queryable<Order>().Select(it => SqlFunc.CharIndex("a", "cccacc")).First();
|
var index = db.Queryable<Order>().Select(it => SqlFunc.CharIndex("a", "cccacc")).First();
|
||||||
var list = db.Queryable<Order>().Select(it =>new ViewOrder()
|
var list = db.Queryable<Order>().Select(it => new ViewOrder()
|
||||||
{
|
{
|
||||||
|
|
||||||
Id = SqlFunc.AggregateSum(SqlFunc.IF(it.Id > 0).Return(1).End(0))
|
Id = SqlFunc.AggregateSum(SqlFunc.IF(it.Id > 0).Return(1).End(0))
|
||||||
}).ToList();
|
}).ToList();
|
||||||
var list2 = db.Queryable<Order>().Where(it=>it.CreateTime.Date==it.CreateTime).Select(it => new
|
var list2 = db.Queryable<Order>().Where(it => it.CreateTime.Date == it.CreateTime).Select(it => new
|
||||||
{
|
{
|
||||||
date = it.CreateTime.Date,
|
date = it.CreateTime.Date,
|
||||||
datetime = DateTime.Now.Date
|
datetime = DateTime.Now.Date
|
||||||
@ -321,8 +332,8 @@ namespace OrmTest
|
|||||||
db.CodeFirst.InitTables(typeof(Tree));
|
db.CodeFirst.InitTables(typeof(Tree));
|
||||||
db.DbMaintenance.TruncateTable("tree");
|
db.DbMaintenance.TruncateTable("tree");
|
||||||
db.Insertable(new Tree() { Id = 1, Name = "root" }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 1, Name = "root" }).ExecuteCommand();
|
||||||
db.Insertable(new Tree() { Id = 11, Name = "child1",ParentId=1 }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 11, Name = "child1", ParentId = 1 }).ExecuteCommand();
|
||||||
db.Insertable(new Tree() { Id = 12, Name = "child2",ParentId=1 }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 12, Name = "child2", ParentId = 1 }).ExecuteCommand();
|
||||||
db.Insertable(new Tree() { Id = 2, Name = "root" }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 2, Name = "root" }).ExecuteCommand();
|
||||||
db.Insertable(new Tree() { Id = 22, Name = "child3", ParentId = 2 }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 22, Name = "child3", ParentId = 2 }).ExecuteCommand();
|
||||||
|
|
||||||
@ -331,9 +342,9 @@ namespace OrmTest
|
|||||||
|
|
||||||
|
|
||||||
//If both entities have parentId, I don't want to associate with parentId.
|
//If both entities have parentId, I don't want to associate with parentId.
|
||||||
var list1 =db.Queryable<Tree>()
|
var list1 = db.Queryable<Tree>()
|
||||||
//parent=(select * from parent where id=it.parentid)
|
//parent=(select * from parent where id=it.parentid)
|
||||||
.Mapper(it=>it.Parent,it=>it.ParentId, it=>it.Parent.Id)
|
.Mapper(it => it.Parent, it => it.ParentId, it => it.Parent.Id)
|
||||||
//Child=(select * from parent where ParentId=it.id)
|
//Child=(select * from parent where ParentId=it.id)
|
||||||
.Mapper(it => it.Child, it => it.Id, it => it.Parent.ParentId)
|
.Mapper(it => it.Child, it => it.Id, it => it.Parent.ParentId)
|
||||||
.ToList();
|
.ToList();
|
||||||
@ -342,16 +353,16 @@ namespace OrmTest
|
|||||||
db.Insertable(new Tree() { Id = 222, Name = "child11", ParentId = 11 }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 222, Name = "child11", ParentId = 11 }).ExecuteCommand();
|
||||||
var tree = db.Queryable<Tree>().ToTree(it => it.Child, it => it.ParentId, 0);
|
var tree = db.Queryable<Tree>().ToTree(it => it.Child, it => it.ParentId, 0);
|
||||||
var tree2 = db.Queryable<Tree2>().ToTree(it => it.Child, it => it.ParentId, 0);
|
var tree2 = db.Queryable<Tree2>().ToTree(it => it.Child, it => it.ParentId, 0);
|
||||||
var allchilds= db.Queryable<Tree>().ToChildList(it => it.ParentId, 0);
|
var allchilds = db.Queryable<Tree>().ToChildList(it => it.ParentId, 0);
|
||||||
var allchilds_2 = db.Queryable<Tree2>().ToChildList(it => it.ParentId, 0);
|
var allchilds_2 = db.Queryable<Tree2>().ToChildList(it => it.ParentId, 0);
|
||||||
var allchilds1 = db.Queryable<Tree>().ToChildList(it => it.ParentId, 1);
|
var allchilds1 = db.Queryable<Tree>().ToChildList(it => it.ParentId, 1);
|
||||||
var allchilds2= db.Queryable<Tree>().ToChildList(it => it.ParentId, 2);
|
var allchilds2 = db.Queryable<Tree>().ToChildList(it => it.ParentId, 2);
|
||||||
var allchilds2_2 = db.Queryable<Tree2>().ToChildList(it => it.ParentId, 2);
|
var allchilds2_2 = db.Queryable<Tree2>().ToChildList(it => it.ParentId, 2);
|
||||||
var parentList = db.Queryable<Tree>().ToParentList(it => it.ParentId, 22);
|
var parentList = db.Queryable<Tree>().ToParentList(it => it.ParentId, 22);
|
||||||
var parentList2 = db.Queryable<Tree>().ToParentList(it => it.ParentId, 222);
|
var parentList2 = db.Queryable<Tree>().ToParentList(it => it.ParentId, 222);
|
||||||
var parentList22 = db.Queryable<Tree2>().ToParentList(it => it.ParentId, 222);
|
var parentList22 = db.Queryable<Tree2>().ToParentList(it => it.ParentId, 222);
|
||||||
var parentList3 = db.Queryable<Tree>().ToParentList(it => it.ParentId, 2);
|
var parentList3 = db.Queryable<Tree>().ToParentList(it => it.ParentId, 2);
|
||||||
|
|
||||||
|
|
||||||
//one to one
|
//one to one
|
||||||
var list2 = db.Queryable<OrderItemInfo>().Mapper(it => it.Order, it => it.OrderId).ToList();
|
var list2 = db.Queryable<OrderItemInfo>().Mapper(it => it.Order, it => it.OrderId).ToList();
|
||||||
@ -366,34 +377,35 @@ namespace OrmTest
|
|||||||
db.Insertable(new B() { Name = "B" }).ExecuteCommand();
|
db.Insertable(new B() { Name = "B" }).ExecuteCommand();
|
||||||
db.Insertable(new ABMapping() { AId = 1, BId = 1 }).ExecuteCommand();
|
db.Insertable(new ABMapping() { AId = 1, BId = 1 }).ExecuteCommand();
|
||||||
|
|
||||||
var list4 = db.Queryable<ABMapping>()
|
var list4 = db.Queryable<ABMapping>()
|
||||||
.Mapper(it => it.A, it => it.AId)
|
.Mapper(it => it.A, it => it.AId)
|
||||||
.Mapper(it => it.B, it => it.BId).ToList();
|
.Mapper(it => it.B, it => it.BId).ToList();
|
||||||
|
|
||||||
//Manual mode
|
//Manual mode
|
||||||
var result = db.Queryable<OrderInfo>().Take(10).Select<ViewOrder>().Mapper((itemModel, cache) =>
|
var result = db.Queryable<OrderInfo>().Take(10).Select<ViewOrder>().Mapper((itemModel, cache) =>
|
||||||
{
|
{
|
||||||
var allItems = cache.Get(orderList => {
|
var allItems = cache.Get(orderList =>
|
||||||
|
{
|
||||||
var allIds = orderList.Select(it => it.Id).ToList();
|
var allIds = orderList.Select(it => it.Id).ToList();
|
||||||
return db.Queryable<OrderItem>().Where(it => allIds.Contains(it.OrderId)).ToList();//Execute only once
|
return db.Queryable<OrderItem>().Where(it => allIds.Contains(it.OrderId)).ToList();//Execute only once
|
||||||
});
|
});
|
||||||
itemModel.Items = allItems.Where(it => it.OrderId==itemModel.Id).ToList();//Every time it's executed
|
itemModel.Items = allItems.Where(it => it.OrderId == itemModel.Id).ToList();//Every time it's executed
|
||||||
}).ToList();
|
}).ToList();
|
||||||
db.CodeFirst.InitTables<Tree>();
|
db.CodeFirst.InitTables<Tree>();
|
||||||
//无限级高性能导航映射
|
//无限级高性能导航映射
|
||||||
var treeRoot=db.Queryable<Tree>().Where(it => it.Id == 1).ToList();
|
var treeRoot = db.Queryable<Tree>().Where(it => it.Id == 1).ToList();
|
||||||
db.ThenMapper(treeRoot, item =>
|
db.ThenMapper(treeRoot, item =>
|
||||||
{
|
{
|
||||||
item.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => item.Id, item).ToList();
|
item.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => item.Id, item).ToList();
|
||||||
});
|
});
|
||||||
db.ThenMapper(treeRoot.SelectMany(it=>it.Child), it =>
|
db.ThenMapper(treeRoot.SelectMany(it => it.Child), it =>
|
||||||
{
|
{
|
||||||
it.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => it.Id, it).ToList();
|
it.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => it.Id, it).ToList();
|
||||||
});
|
});
|
||||||
db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it=>it.Child), it =>
|
db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it => it.Child), it =>
|
||||||
{
|
{
|
||||||
it.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => it.Id, it).ToList();
|
it.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => it.Id, it).ToList();
|
||||||
});
|
});
|
||||||
db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it => it.Child).SelectMany(it => it.Child), it =>
|
db.ThenMapper(treeRoot.SelectMany(it => it.Child).SelectMany(it => it.Child).SelectMany(it => it.Child), it =>
|
||||||
{
|
{
|
||||||
it.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => it.Id, it).ToList();
|
it.Child = db.Queryable<Tree>().SetContext(x => x.ParentId, () => it.Id, it).ToList();
|
||||||
@ -420,7 +432,7 @@ namespace OrmTest
|
|||||||
var db = GetInstance();
|
var db = GetInstance();
|
||||||
|
|
||||||
//Simple join
|
//Simple join
|
||||||
var list = db.Queryable<Order, OrderItem, Custom>((o, i, c) => o.Id == i.OrderId&&c.Id == o.CustomId)
|
var list = db.Queryable<Order, OrderItem, Custom>((o, i, c) => o.Id == i.OrderId && c.Id == o.CustomId)
|
||||||
.Select<ViewOrder>()
|
.Select<ViewOrder>()
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
@ -438,31 +450,31 @@ namespace OrmTest
|
|||||||
.Where(o => o.Name == "jack");
|
.Where(o => o.Name == "jack");
|
||||||
|
|
||||||
var query2 = db.Queryable<Custom>();
|
var query2 = db.Queryable<Custom>();
|
||||||
var list3=db.Queryable(query1, query2,JoinType.Left, (p1, p2) => p1.CustomId == p2.Id).Select<ViewOrder>().ToList();
|
var list3 = db.Queryable(query1, query2, JoinType.Left, (p1, p2) => p1.CustomId == p2.Id).Select<ViewOrder>().ToList();
|
||||||
|
|
||||||
|
|
||||||
var query3 = db.Union(
|
var query3 = db.Union(
|
||||||
db.Queryable<Order>().Where(it => it.Name.Contains("a")),
|
db.Queryable<Order>().Where(it => it.Name.Contains("a")),
|
||||||
db.Queryable<Order>().Where(it => it.Name.Contains("b"))
|
db.Queryable<Order>().Where(it => it.Name.Contains("b"))
|
||||||
).ToList();
|
).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var query4 = db.Queryable<Order,OrderItem,Custom>(
|
var query4 = db.Queryable<Order, OrderItem, Custom>(
|
||||||
db.Queryable<Order>().Where(it => it.Name.Contains("a")),
|
db.Queryable<Order>().Where(it => it.Name.Contains("a")),
|
||||||
db.Queryable<OrderItem>().Where(it => it.CreateTime>DateTime.Now),
|
db.Queryable<OrderItem>().Where(it => it.CreateTime > DateTime.Now),
|
||||||
db.Queryable<Custom>().Where(it => it.Name.Contains("b")),
|
db.Queryable<Custom>().Where(it => it.Name.Contains("b")),
|
||||||
JoinType.Left, (o, i, c) => o.Id==i.OrderId,
|
JoinType.Left, (o, i, c) => o.Id == i.OrderId,
|
||||||
JoinType.Left,(o,i,c)=>o.CustomId==c.Id
|
JoinType.Left, (o, i, c) => o.CustomId == c.Id
|
||||||
|
|
||||||
).Select(o=>o).ToList();
|
).Select(o => o).ToList();
|
||||||
|
|
||||||
|
|
||||||
var query5 = db.Queryable<Order>()
|
var query5 = db.Queryable<Order>()
|
||||||
.InnerJoin<Custom>((o, cus) => o.CustomId == cus.Id)
|
.InnerJoin<Custom>((o, cus) => o.CustomId == cus.Id)
|
||||||
.InnerJoin<OrderItem>((o, cus, oritem) => o.Id == oritem.OrderId)
|
.InnerJoin<OrderItem>((o, cus, oritem) => o.Id == oritem.OrderId)
|
||||||
.Where((o) => o.Id == 1)
|
.Where((o) => o.Id == 1)
|
||||||
.Select((o, cus) => new ViewOrder { Id=o.Id, CustomName = cus.Name })
|
.Select((o, cus) => new ViewOrder { Id = o.Id, CustomName = cus.Name })
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var query6 = db.Queryable(db.Queryable<Order>()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
|
var query6 = db.Queryable(db.Queryable<Order>()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
|
||||||
@ -474,9 +486,9 @@ namespace OrmTest
|
|||||||
|
|
||||||
|
|
||||||
var query8 = db.Queryable<Order>()
|
var query8 = db.Queryable<Order>()
|
||||||
.LeftJoin(db.Queryable<Custom>().Where(it=>it.Id==1),(o,i)=>o.CustomId==i.Id)
|
.LeftJoin(db.Queryable<Custom>().Where(it => it.Id == 1), (o, i) => o.CustomId == i.Id)
|
||||||
.LeftJoin(db.Queryable<OrderItem>().Where(it=>it.OrderId==2),(o,i,item)=>item.OrderId==o.Id)
|
.LeftJoin(db.Queryable<OrderItem>().Where(it => it.OrderId == 2), (o, i, item) => item.OrderId == o.Id)
|
||||||
.LeftJoin(db.Queryable<Order>().Where(it => it.Id >0), (o, i, item, od) => od.Id == o.Id)
|
.LeftJoin(db.Queryable<Order>().Where(it => it.Id > 0), (o, i, item, od) => od.Id == o.Id)
|
||||||
.Select(o => o).ToList();
|
.Select(o => o).ToList();
|
||||||
|
|
||||||
var query9 = db.Queryable<Order>()
|
var query9 = db.Queryable<Order>()
|
||||||
@ -535,8 +547,8 @@ namespace OrmTest
|
|||||||
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
|
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
|
||||||
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Like, FieldValue = "1" });// id like '%1%'
|
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.Like, FieldValue = "1" });// id like '%1%'
|
||||||
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.IsNullOrEmpty });
|
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.IsNullOrEmpty });
|
||||||
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.In, FieldValue = "1,2,3",CSharpTypeName="int" });
|
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.In, FieldValue = "1,2,3", CSharpTypeName = "int" });
|
||||||
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.NotIn, FieldValue = "1,2,3" ,CSharpTypeName="int" });
|
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.NotIn, FieldValue = "1,2,3", CSharpTypeName = "int" });
|
||||||
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.NoEqual, FieldValue = "1,2,3" });
|
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.NoEqual, FieldValue = "1,2,3" });
|
||||||
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.IsNot, FieldValue = null });// id is not null
|
conModels.Add(new ConditionalModel() { FieldName = "id", ConditionalType = ConditionalType.IsNot, FieldValue = null });// id is not null
|
||||||
|
|
||||||
@ -580,7 +592,7 @@ namespace OrmTest
|
|||||||
task1.Wait();
|
task1.Wait();
|
||||||
var task2 = db.Queryable<Order>().Where(it => it.Id == 1).ToListAsync();
|
var task2 = db.Queryable<Order>().Where(it => it.Id == 1).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
task2.Wait();
|
task2.Wait();
|
||||||
|
|
||||||
Console.WriteLine("#### Async End ####");
|
Console.WriteLine("#### Async End ####");
|
||||||
|
Loading…
Reference in New Issue
Block a user