Update Demo

This commit is contained in:
skx 2021-01-30 14:25:04 +08:00
parent f5b1dccd2c
commit 5f42b14493

View File

@ -25,8 +25,8 @@ namespace OrmTest
//Order add filter //Order add filter
db.QueryFilter.Add(new TableFilterItem<Order>(it => it.Name.Contains("a"))); db.QueryFilter.Add(new TableFilterItem<Order>(it => it.Name.Contains("a")));
db.Queryable<Order>().ToList(); db.Queryable<Order>().ToList();
//SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] WHERE ([Name] like '%'+@MethodConst0+'%') //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] WHERE ([Name] like '%'+@MethodConst0+'%')
db.Queryable<OrderItem, Order>((i, o) => i.OrderId == o.Id) db.Queryable<OrderItem, Order>((i, o) => i.OrderId == o.Id)
@ -35,7 +35,7 @@ namespace OrmTest
//SELECT i.* FROM [OrderDetail] i ,[Order] o WHERE ( [i].[OrderId] = [o].[Id] ) AND ( [i].[OrderId] <> @OrderId0 ) AND ([o].[Name] like '%'+@MethodConst1+'%') //SELECT i.* FROM [OrderDetail] i ,[Order] o WHERE ( [i].[OrderId] = [o].[Id] ) AND ( [i].[OrderId] <> @OrderId0 ) AND ([o].[Name] like '%'+@MethodConst1+'%')
//no filter //no filter
db.Queryable<Order>().Filter(null, false).ToList(); db.Queryable<Order>().Filter(null, false).ToList();
//SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order]
} }
@ -50,8 +50,20 @@ namespace OrmTest
{ {
//Writable logic //Writable logic
return new SqlFilterResult() { Sql = " name like '%a%' " }; return new SqlFilterResult() { Sql = " name like '%a%' " };
} },
IsJoinQuery = false // single query
}); });
db2.QueryFilter.Add(new SqlFilterItem()
{
FilterName = "Myfilter1",
FilterValue = it =>
{
//Writable logic
return new SqlFilterResult() { Sql = " o.name like '%a%' " };
},
IsJoinQuery = true //join query
});
db2.Queryable<Order>() db2.Queryable<Order>()
.Where(it => it.Name == "jack") .Where(it => it.Name == "jack")
.Filter("Myfilter1") .Filter("Myfilter1")
@ -61,6 +73,14 @@ namespace OrmTest
//WHERE ( [Name] = 'jack' ) AND name like '%a%' //WHERE ( [Name] = 'jack' ) AND name like '%a%'
db2.Queryable<Order, OrderItem>((o, i) => o.Id == i.OrderId)
.Where(o => o.Name == "jack")
.Filter("Myfilter1")
.Select(o => o)
.ToList();
//SELECT o.* FROM[Order] o, [OrderDetail] i WHERE ( [o].[Id] = [i].[OrderId])
//AND([o].[Name] = 'jack') AND o.name like '%a%'
//no filter //no filter
db2.Queryable<Order>().Filter(null, false).ToList(); db2.Queryable<Order>().Filter(null, false).ToList();
//SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order]