diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs index a33598589..dbbc7e61e 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs @@ -259,8 +259,8 @@ namespace OrmTest var list2 = db.Queryable().Where(it => SqlFunc.Subqueryable() .LeftJoin((i,y)=>i.ItemId==y.ItemId) - .InnerJoin((i,z) => i.ItemId == z.ItemId) - .Where(i=>i.ItemId==1) + .InnerJoin((i,y,z) => i.ItemId == z.ItemId) + .Where((i ,y)=>i.ItemId==1) .Any() ).ToList(); ; @@ -276,6 +276,14 @@ namespace OrmTest customName = SqlFunc.Subqueryable().Where(exp).Where(exp).GroupBy(s => s.Name).Having(s => SqlFunc.AggregateCount(s.Id) > 0).Select(s => s.Name) }).ToList(); + + var list5 = db.Queryable().Where(it => + SqlFunc.Subqueryable() + .LeftJoin((i, y) => i.ItemId == y.ItemId) + .InnerJoin((i, z) => i.ItemId == z.ItemId) + .Where(i => i.ItemId == 1) + .Any() + ).ToList(); Console.WriteLine("#### Subquery End ####"); } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Subquerable.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Subquerable.cs index d873b1d39..a3f465855 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Subquerable.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Subquerable.cs @@ -6,21 +6,20 @@ using System.Text; namespace SqlSugar { - - public class Subqueryable where T : class, new() + public partial class Subqueryable where T : class, new() { public Subqueryable AS(string tableName) { return this; } - public Subqueryable InnerJoin(Func expression) + public Subqueryable InnerJoin(Func expression) { - return this; + return new Subqueryable(); } - public Subqueryable LeftJoin(Func expression) + public Subqueryable LeftJoin(Func expression) { - return this; + return new Subqueryable(); } public Subqueryable Where(string where) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubqueryableN.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubqueryableN.cs new file mode 100644 index 000000000..84ba6b4fd --- /dev/null +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubqueryableN.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SqlSugar +{ + public class Subqueryable : Subqueryable where T : class, new() + { + } + public class Subqueryable : Subqueryable where T : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable Where(Func expression) + { + return new Subqueryable(); + } + public Subqueryable Where(Func expression) + { + return new Subqueryable(); + } + public Subqueryable Where(Func expression) + { + return new Subqueryable(); + } + } + public class Subqueryable : Subqueryable where T : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable Where(Func expression) + { + return new Subqueryable(); + } + public Subqueryable Where(Func expression) + { + return new Subqueryable(); + } + } + public class Subqueryable : Subqueryable where T : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable Where(Func expression) + { + return new Subqueryable(); + } + } +}