Update demo

This commit is contained in:
sunkaixuna
2021-12-24 22:53:44 +08:00
parent 63bea7b182
commit 3e8ea9bef5
4 changed files with 282 additions and 34 deletions

View File

@@ -258,10 +258,12 @@ namespace OrmTest
var list2 = db.Queryable<Order>().Where(it =>
SqlFunc.Subqueryable<OrderItem>()
.LeftJoin<OrderItem>((i,y)=>i.ItemId==y.ItemId&&2==2)
.LeftJoin<OrderItem>((i,z)=>i.ItemId==z.ItemId)
.InnerJoin<OrderItem>((i,y,z) => i.ItemId == z.ItemId)
.Where((i ,y,z)=>i.ItemId==z.ItemId)
.Any()
.InnerJoin<OrderItem>((i, y, z,x) => i.ItemId == z.ItemId)
.InnerJoin<OrderItem>((i, y, z, x ,h) => i.ItemId == z.ItemId)
.Where((i, z) => i.ItemId == z.ItemId)
.Any()
).ToList();
;
var list3 = db.Queryable<Order>().Select(it => new

View File

@@ -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<T1> where T1 : class, new()
//{
// public Subqueryable<@Tn> InnerJoin<JoinType>(Func<@Tn, bool> expression)
// {
// return new Subqueryable<@Tn>();
// }
// public Subqueryable<@Tn> LeftJoin<JoinType>(Func<@Tn, bool> expression)
// {
// return new Subqueryable<@Tn>();
// }
// @for(int i = 0; i<count; i++)
// {
// var itemcount = i + 1;
// var wtn = "";
// for (int j = 0; j<itemcount; j++)
// {
// wtn += "T" + (j+1) + ",";
// }
//wtn = wtn.TrimEnd(',');
// @:public @(i == 0 ? "new" : "") Subqueryable<@T> Where(Func<@wtn, bool> expression)
// @:{
// @:return this;
// @:}
//}
//}

View File

@@ -5,65 +5,270 @@ using System.Text;
using System.Threading.Tasks;
namespace SqlSugar
{
public class Subqueryable<T, T2, T3, T4, T5> : Subqueryable<T> where T : class, new()
{ public class Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8,T9,T10> : Subqueryable<T1> where T1 : class, new()
{ }
public class Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> : Subqueryable<T1> where T1 : class, new()
{
}
public class Subqueryable<T, T2, T3, T4> : Subqueryable<T> where T : class, new()
{
public Subqueryable<T, T2, T3, JoinType> InnerJoin<JoinType>(Func<T, T2, T3, JoinType, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9, JoinType> InnerJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, JoinType, bool> expression)
{
return new Subqueryable<T, T2, T3, JoinType>();
return new Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9, JoinType>();
}
public Subqueryable<T, T2, T3, JoinType> LeftJoin<JoinType>(Func<T, T2, T3, JoinType, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9, JoinType> LeftJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, JoinType, bool> expression)
{
return new Subqueryable<T, T2, T3, JoinType>();
return new Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9, JoinType>();
}
public Subqueryable<T, T2, T3, T4, JoinType> Where(Func<T, T2, T3, T4, bool> expression)
public new Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, bool> expression)
{
return new Subqueryable<T, T2, T3, T4, JoinType>();
return this;
}
public Subqueryable<T, T2, T3, T4, JoinType> Where(Func<T, T2, T3, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, bool> expression)
{
return new Subqueryable<T, T2, T3, T4, JoinType>();
return this;
}
public Subqueryable<T, T2, T3, T4, JoinType> Where(Func<T, T2, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, T3, bool> expression)
{
return new Subqueryable<T, T2, T3, T4, JoinType>();
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, T3, T4, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, T3, T4, T5, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, T3, T4, T5, T6, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, T3, T4, T5, T6, T7, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, T3, T4, T5, T6, T7, T8, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, T9> Where(Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, bool> expression)
{
return this;
}
}
public class Subqueryable<T, T2, T3> : Subqueryable<T> where T : class, new()
public class Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> : Subqueryable<T1> where T1 : class, new()
{
public Subqueryable<T, T2, T3, JoinType> InnerJoin<JoinType>(Func<T, T2, T3, JoinType, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, JoinType> InnerJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, T7, T8, JoinType, bool> expression)
{
return new Subqueryable<T, T2, T3, JoinType>();
return new Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, JoinType>();
}
public Subqueryable<T, T2, T3, JoinType> LeftJoin<JoinType>(Func<T, T2, T3, JoinType, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, JoinType> LeftJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, T7, T8, JoinType, bool> expression)
{
return new Subqueryable<T, T2, T3, JoinType>();
return new Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8, JoinType>();
}
public Subqueryable<T, T2, T3, JoinType> Where(Func<T, T2, T3, bool> expression)
public new Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, bool> expression)
{
return new Subqueryable<T, T2, T3, JoinType>();
return this;
}
public Subqueryable<T, T2, T3, JoinType> Where(Func<T, T2, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, T2, bool> expression)
{
return new Subqueryable<T, T2, T3, JoinType>();
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, T2, T3, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, T2, T3, T4, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, T2, T3, T4, T5, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, T2, T3, T4, T5, T6, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, T2, T3, T4, T5, T6, T7, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, T8> Where(Func<T1, T2, T3, T4, T5, T6, T7, T8, bool> expression)
{
return this;
}
}
public class Subqueryable<T, T2> : Subqueryable<T> where T : class, new()
public class Subqueryable<T1, T2, T3, T4, T5, T6, T7> : Subqueryable<T1> where T1 : class, new()
{
public Subqueryable<T, T2, JoinType> InnerJoin<JoinType>(Func<T, T2, JoinType, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, JoinType> InnerJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, T7, JoinType, bool> expression)
{
return new Subqueryable<T, T2, JoinType>();
return new Subqueryable<T1, T2, T3, T4, T5, T6, T7, JoinType>();
}
public Subqueryable<T, T2, JoinType> LeftJoin<JoinType>(Func<T, T2, JoinType, bool> expression)
public Subqueryable<T1, T2, T3, T4, T5, T6, T7, JoinType> LeftJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, T7, JoinType, bool> expression)
{
return new Subqueryable<T, T2, JoinType>();
return new Subqueryable<T1, T2, T3, T4, T5, T6, T7, JoinType>();
}
public Subqueryable<T, T2, JoinType> Where(Func<T, T2, bool> expression)
public new Subqueryable<T1, T2, T3, T4, T5, T6, T7> Where(Func<T1, bool> expression)
{
return new Subqueryable<T, T2, JoinType>();
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7> Where(Func<T1, T2, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7> Where(Func<T1, T2, T3, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7> Where(Func<T1, T2, T3, T4, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7> Where(Func<T1, T2, T3, T4, T5, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7> Where(Func<T1, T2, T3, T4, T5, T6, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6, T7> Where(Func<T1, T2, T3, T4, T5, T6, T7, bool> expression)
{
return this;
}
}
public class Subqueryable<T1, T2, T3, T4, T5, T6> : Subqueryable<T1> where T1 : class, new()
{
public Subqueryable<T1, T2, T3, T4, T5, T6, JoinType> InnerJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, T4, T5, T6, JoinType>();
}
public Subqueryable<T1, T2, T3, T4, T5, T6, JoinType> LeftJoin<JoinType>(Func<T1, T2, T3, T4, T5, T6, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, T4, T5, T6, JoinType>();
}
public new Subqueryable<T1, T2, T3, T4, T5, T6> Where(Func<T1, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6> Where(Func<T1, T2, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6> Where(Func<T1, T2, T3, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6> Where(Func<T1, T2, T3, T4, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6> Where(Func<T1, T2, T3, T4, T5, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5, T6> Where(Func<T1, T2, T3, T4, T5, T6, bool> expression)
{
return this;
}
}
public class Subqueryable<T1, T2, T3, T4, T5> : Subqueryable<T1> where T1 : class, new()
{
public Subqueryable<T1, T2, T3, T4, T5, JoinType> InnerJoin<JoinType>(Func<T1, T2, T3, T4, T5, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, T4, T5, JoinType>();
}
public Subqueryable<T1, T2, T3, T4, T5, JoinType> LeftJoin<JoinType>(Func<T1, T2, T3, T4, T5, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, T4, T5, JoinType>();
}
public new Subqueryable<T1, T2, T3, T4, T5> Where(Func<T1, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5> Where(Func<T1, T2, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5> Where(Func<T1, T2, T3, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5> Where(Func<T1, T2, T3, T4, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4, T5> Where(Func<T1, T2, T3, T4, T5, bool> expression)
{
return this;
}
}
public class Subqueryable<T1, T2, T3, T4> : Subqueryable<T1> where T1 : class, new()
{
public Subqueryable<T1, T2, T3, T4, JoinType> InnerJoin<JoinType>(Func<T1, T2, T3, T4, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, T4, JoinType>();
}
public Subqueryable<T1, T2, T3, T4, JoinType> LeftJoin<JoinType>(Func<T1, T2, T3, T4, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, T4, JoinType>();
}
public new Subqueryable<T1, T2, T3, T4> Where(Func<T1, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4> Where(Func<T1, T2, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4> Where(Func<T1, T2, T3, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3, T4> Where(Func<T1, T2, T3, T4, bool> expression)
{
return this;
}
}
public class Subqueryable<T1, T2, T3> : Subqueryable<T1> where T1 : class, new()
{
public Subqueryable<T1, T2, T3, JoinType> InnerJoin<JoinType>(Func<T1, T2, T3, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, JoinType>();
}
public Subqueryable<T1, T2, T3, JoinType> LeftJoin<JoinType>(Func<T1, T2, T3, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, T3, JoinType>();
}
public new Subqueryable<T1, T2, T3> Where(Func<T1, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3> Where(Func<T1, T2, bool> expression)
{
return this;
}
public Subqueryable<T1, T2, T3> Where(Func<T1, T2, T3, bool> expression)
{
return this;
}
}
public class Subqueryable<T1, T2> : Subqueryable<T1> where T1 : class, new()
{
public Subqueryable<T1, T2, JoinType> InnerJoin<JoinType>(Func<T1, T2, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, JoinType>();
}
public Subqueryable<T1, T2, JoinType> LeftJoin<JoinType>(Func<T1, T2, JoinType, bool> expression)
{
return new Subqueryable<T1, T2, JoinType>();
}
public new Subqueryable<T1, T2> Where(Func<T1, bool> expression)
{
return this;
}
public Subqueryable<T1, T2> Where(Func<T1, T2, bool> expression)
{
return this;
}
}
}

View File

@@ -96,6 +96,7 @@
<Compile Include="Abstract\FilterProvider\FilterProvider.cs" />
<Compile Include="Abstract\SaveableProvider\StorageableDataTable.cs" />
<Compile Include="Abstract\SugarProvider\SqlSugarCoreProvider.cs" />
<Compile Include="ExpressionsToSql\Subquery\SubTemplate.cs" />
<Compile Include="ExpressionsToSql\Subquery\SubqueryableN.cs" />
<Compile Include="Interface\IFastBuilder.cs" />
<Compile Include="Interface\IFastest.cs" />