mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Update Queryable.Clone
This commit is contained in:
parent
af0b1c201a
commit
42210530ba
@ -30,6 +30,16 @@ namespace OrmTest.Demo
|
||||
|
||||
var list1 = qy.Clone().Where(it => it.Id == 1).ToList();
|
||||
var list2 = qy.Clone().Where(it => it.Id == 2).ToList();
|
||||
|
||||
|
||||
|
||||
var qy2 = db.Queryable<Student,School>((st,sc)=>new object[]{
|
||||
JoinType.Left,st.SchoolId==sc.Id
|
||||
}).Where((st,sc)=>st.Id == 1);
|
||||
|
||||
var join0 = qy2.Clone().Where((st, sc) => sc.Id == 222).Select(st=>st.Id).ToList();
|
||||
var join1 = qy2.Clone().Where((st,sc) => st.Id== 1111).ToList();
|
||||
var join2 = qy2.Clone().Where((st,sc)=>sc.Id==222).ToList();
|
||||
}
|
||||
|
||||
private static void JoinExp()
|
||||
|
@ -53,7 +53,7 @@ namespace SqlSugar
|
||||
public ISugarQueryable<T> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T>().WithCacheIF(IsCache, CacheTime);
|
||||
CopyQueryBuilder(this.QueryBuilder);
|
||||
CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public virtual ISugarQueryable<T> AS<T2>(string tableName)
|
||||
@ -1280,16 +1280,18 @@ namespace SqlSugar
|
||||
|
||||
protected void CopyQueryBuilder(QueryBuilder asyncQueryableBuilder)
|
||||
{
|
||||
var pars = new List<SugarParameter>();
|
||||
pars.AddRange(this.QueryBuilder.Parameters);
|
||||
asyncQueryableBuilder.Take = this.QueryBuilder.Take;
|
||||
asyncQueryableBuilder.Skip = this.QueryBuilder.Skip;
|
||||
asyncQueryableBuilder.SelectValue = this.QueryBuilder.SelectValue;
|
||||
asyncQueryableBuilder.WhereInfos = this.QueryBuilder.WhereInfos;
|
||||
asyncQueryableBuilder.WhereInfos =this.Context.Utilities.TranslateCopy(this.QueryBuilder.WhereInfos);
|
||||
asyncQueryableBuilder.EasyJoinInfos = this.QueryBuilder.EasyJoinInfos;
|
||||
asyncQueryableBuilder.JoinQueryInfos = this.QueryBuilder.JoinQueryInfos;
|
||||
asyncQueryableBuilder.WhereIndex = this.QueryBuilder.WhereIndex;
|
||||
asyncQueryableBuilder.EntityType = this.QueryBuilder.EntityType;
|
||||
asyncQueryableBuilder.EntityName = this.QueryBuilder.EntityName;
|
||||
asyncQueryableBuilder.Parameters = this.QueryBuilder.Parameters;
|
||||
asyncQueryableBuilder.Parameters = pars;
|
||||
asyncQueryableBuilder.TableShortName = this.QueryBuilder.TableShortName;
|
||||
asyncQueryableBuilder.TableWithString = this.QueryBuilder.TableWithString;
|
||||
asyncQueryableBuilder.GroupByValue = this.QueryBuilder.GroupByValue;
|
||||
@ -1473,7 +1475,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T,T2> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T,T2>((t,t2)=>new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2> AS<AsT>(string tableName)
|
||||
@ -1756,7 +1758,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2,T3> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2,T3>((t, t2,t3) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3> AS<AsT>(string tableName)
|
||||
@ -2071,7 +2073,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2,T3,T4> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2,T3,T4>((t, t2,t3,t4) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4> AS<AsT>(string tableName)
|
||||
@ -2389,7 +2391,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4,T5> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4,T5>((t, t2, t3, t4,t5) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5> AS<AsT>(string tableName)
|
||||
@ -2697,7 +2699,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5,T6> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4, T5,T6>((t, t2, t3, t4, t5,T6) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6> AS<AsT>(string tableName)
|
||||
@ -3032,7 +3034,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6,T7> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4, T5, T6,T7>((t, t2, t3, t4, t5, T6,t7) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> AS<AsT>(string tableName)
|
||||
@ -3393,7 +3395,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7,T8> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4, T5, T6, T7,T8>((t, t2, t3, t4, t5, T6, t7,t8) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> AS<AsT>(string tableName)
|
||||
@ -3778,7 +3780,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8,T9> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4, T5, T6, T7, T8,T9>((t, t2, t3, t4, t5, T6, t7, t8,t9) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> AS<AsT>(string tableName)
|
||||
@ -4187,7 +4189,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9,T10>((t, t2, t3, t4, t5, T6, t7, t8, t9,t10) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> AS<AsT>(string tableName)
|
||||
@ -4620,7 +4622,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10,T11>((t, t2, t3, t4, t5, T6, t7, t8, t9,t10,t11) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> AS<AsT>(string tableName)
|
||||
@ -5079,7 +5081,7 @@ namespace SqlSugar
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12> Clone()
|
||||
{
|
||||
var queryable = this.Context.Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,T12>((t, t2, t3, t4, t5, T6, t7, t8, t9, t10, t11,t12) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||
base.CopyQueryBuilder(this.QueryBuilder);
|
||||
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||
return queryable;
|
||||
}
|
||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> AS<AsT>(string tableName)
|
||||
|
@ -343,6 +343,7 @@ namespace SqlSugar
|
||||
expressionContext.Resolve(joinExpression, ResolveExpressType.Join);
|
||||
int i = 0;
|
||||
var joinArray = MergeJoinArray(expressionContext.Result.GetResultArray());
|
||||
if (joinArray == null) return null;
|
||||
parameters = expressionContext.Parameters;
|
||||
foreach (var entityType in entityTypeArray)
|
||||
{
|
||||
@ -381,6 +382,7 @@ namespace SqlSugar
|
||||
List<string> result = new List<string>();
|
||||
string joinValue = null;
|
||||
int i = 0;
|
||||
if (joinArray == null) return null;
|
||||
foreach (var item in joinArray)
|
||||
{
|
||||
++i;
|
||||
|
Loading…
Reference in New Issue
Block a user