diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs index ddc950ee2..0a16e5717 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs @@ -258,10 +258,12 @@ namespace OrmTest var list2 = db.Queryable().Where(it => SqlFunc.Subqueryable() - .LeftJoin((i,y)=>i.ItemId==y.ItemId&&2==2) + .LeftJoin((i,z)=>i.ItemId==z.ItemId) .InnerJoin((i,y,z) => i.ItemId == z.ItemId) - .Where((i ,y,z)=>i.ItemId==z.ItemId) - .Any() + .InnerJoin((i, y, z,x) => i.ItemId == z.ItemId) + .InnerJoin((i, y, z, x ,h) => i.ItemId == z.ItemId) + .Where((i, z) => i.ItemId == z.ItemId) + .Any() ).ToList(); ; var list3 = db.Queryable().Select(it => new diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubTemplate.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubTemplate.cs new file mode 100644 index 000000000..7305ac13c --- /dev/null +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubTemplate.cs @@ -0,0 +1,40 @@ +//@{ +// var count = 9; +// var T = ""; +// var Tn = ""; +// for (int i = 0; i < count; i++) +// { +// T += "T" + (i + 1) + ","; +// } +// Tn = T + "JoinType"; +// T = T.TrimEnd(','); +//} +//public class Subqueryable<@T> : Subqueryable where T1 : class, new() +//{ +// public Subqueryable<@Tn> InnerJoin(Func<@Tn, bool> expression) +// { +// return new Subqueryable<@Tn>(); +// } +// public Subqueryable<@Tn> LeftJoin(Func<@Tn, bool> expression) +// { +// return new Subqueryable<@Tn>(); +// } +// @for(int i = 0; i Where(Func<@wtn, bool> expression) +// @:{ +// @:return this; +// @:} + +//} +//} + diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubqueryableN.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubqueryableN.cs index 84ba6b4fd..eeaad3ee8 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubqueryableN.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubqueryableN.cs @@ -5,65 +5,270 @@ using System.Text; using System.Threading.Tasks; namespace SqlSugar -{ - public class Subqueryable : Subqueryable where T : class, new() +{ public class Subqueryable : Subqueryable where T1 : class, new() + { } + public class Subqueryable : Subqueryable where T1 : class, new() { - } - public class Subqueryable : Subqueryable where T : class, new() - { - public Subqueryable InnerJoin(Func expression) + public Subqueryable InnerJoin(Func expression) { - return new Subqueryable(); + return new Subqueryable(); } - public Subqueryable LeftJoin(Func expression) + public Subqueryable LeftJoin(Func expression) { - return new Subqueryable(); + return new Subqueryable(); } - public Subqueryable Where(Func expression) + public new Subqueryable Where(Func expression) { - return new Subqueryable(); + return this; } - public Subqueryable Where(Func expression) + public Subqueryable Where(Func expression) { - return new Subqueryable(); + return this; } - public Subqueryable Where(Func expression) + public Subqueryable Where(Func expression) { - return new Subqueryable(); + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; } } - public class Subqueryable : Subqueryable where T : class, new() + public class Subqueryable : Subqueryable where T1 : class, new() { - public Subqueryable InnerJoin(Func expression) + public Subqueryable InnerJoin(Func expression) { - return new Subqueryable(); + return new Subqueryable(); } - public Subqueryable LeftJoin(Func expression) + public Subqueryable LeftJoin(Func expression) { - return new Subqueryable(); + return new Subqueryable(); } - public Subqueryable Where(Func expression) + public new Subqueryable Where(Func expression) { - return new Subqueryable(); + return this; } - public Subqueryable Where(Func expression) + public Subqueryable Where(Func expression) { - return new Subqueryable(); + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; } } - public class Subqueryable : Subqueryable where T : class, new() + public class Subqueryable : Subqueryable where T1 : class, new() { - public Subqueryable InnerJoin(Func expression) + public Subqueryable InnerJoin(Func expression) { - return new Subqueryable(); + return new Subqueryable(); } - public Subqueryable LeftJoin(Func expression) + public Subqueryable LeftJoin(Func expression) { - return new Subqueryable(); + return new Subqueryable(); } - public Subqueryable Where(Func expression) + public new Subqueryable Where(Func expression) { - return new Subqueryable(); + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + } + public class Subqueryable : Subqueryable where T1 : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public new Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + } + public class Subqueryable : Subqueryable where T1 : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public new Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + } + public class Subqueryable : Subqueryable where T1 : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public new Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + } + public class Subqueryable : Subqueryable where T1 : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public new Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; + } + } + public class Subqueryable : Subqueryable where T1 : class, new() + { + public Subqueryable InnerJoin(Func expression) + { + return new Subqueryable(); + } + public Subqueryable LeftJoin(Func expression) + { + return new Subqueryable(); + } + public new Subqueryable Where(Func expression) + { + return this; + } + public Subqueryable Where(Func expression) + { + return this; } } } diff --git a/Src/Asp.Net/SqlSugar/SqlSugar.csproj b/Src/Asp.Net/SqlSugar/SqlSugar.csproj index 9328084dc..6f391c58e 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugar.csproj +++ b/Src/Asp.Net/SqlSugar/SqlSugar.csproj @@ -96,6 +96,7 @@ +