diff --git a/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs b/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs index e194f4b67..5291d35d0 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Democ_GobalFilter.cs @@ -25,8 +25,8 @@ namespace OrmTest //Order add filter db.QueryFilter.Add(new TableFilterItem(it => it.Name.Contains("a"))); - - db.Queryable().ToList(); + + db.Queryable().ToList(); //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] WHERE ([Name] like '%'+@MethodConst0+'%') db.Queryable((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+'%') //no filter - db.Queryable().Filter(null, false).ToList(); + db.Queryable().Filter(null, false).ToList(); //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order] } @@ -50,8 +50,20 @@ namespace OrmTest { //Writable logic 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() .Where(it => it.Name == "jack") .Filter("Myfilter1") @@ -61,6 +73,14 @@ namespace OrmTest //WHERE ( [Name] = 'jack' ) AND name like '%a%' + db2.Queryable((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 db2.Queryable().Filter(null, false).ToList(); //SELECT [Id],[Name],[Price],[CreateTime],[CustomId] FROM [Order]