mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-27 11:19:15 +08:00
Update Queryable.Clone
This commit is contained in:
@@ -30,6 +30,16 @@ namespace OrmTest.Demo
|
|||||||
|
|
||||||
var list1 = qy.Clone().Where(it => it.Id == 1).ToList();
|
var list1 = qy.Clone().Where(it => it.Id == 1).ToList();
|
||||||
var list2 = qy.Clone().Where(it => it.Id == 2).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()
|
private static void JoinExp()
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace SqlSugar
|
|||||||
public ISugarQueryable<T> Clone()
|
public ISugarQueryable<T> Clone()
|
||||||
{
|
{
|
||||||
var queryable = this.Context.Queryable<T>().WithCacheIF(IsCache, CacheTime);
|
var queryable = this.Context.Queryable<T>().WithCacheIF(IsCache, CacheTime);
|
||||||
CopyQueryBuilder(this.QueryBuilder);
|
CopyQueryBuilder(queryable.QueryBuilder);
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> AS<T2>(string tableName)
|
public virtual ISugarQueryable<T> AS<T2>(string tableName)
|
||||||
@@ -1280,16 +1280,18 @@ namespace SqlSugar
|
|||||||
|
|
||||||
protected void CopyQueryBuilder(QueryBuilder asyncQueryableBuilder)
|
protected void CopyQueryBuilder(QueryBuilder asyncQueryableBuilder)
|
||||||
{
|
{
|
||||||
|
var pars = new List<SugarParameter>();
|
||||||
|
pars.AddRange(this.QueryBuilder.Parameters);
|
||||||
asyncQueryableBuilder.Take = this.QueryBuilder.Take;
|
asyncQueryableBuilder.Take = this.QueryBuilder.Take;
|
||||||
asyncQueryableBuilder.Skip = this.QueryBuilder.Skip;
|
asyncQueryableBuilder.Skip = this.QueryBuilder.Skip;
|
||||||
asyncQueryableBuilder.SelectValue = this.QueryBuilder.SelectValue;
|
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.EasyJoinInfos = this.QueryBuilder.EasyJoinInfos;
|
||||||
asyncQueryableBuilder.JoinQueryInfos = this.QueryBuilder.JoinQueryInfos;
|
asyncQueryableBuilder.JoinQueryInfos = this.QueryBuilder.JoinQueryInfos;
|
||||||
asyncQueryableBuilder.WhereIndex = this.QueryBuilder.WhereIndex;
|
asyncQueryableBuilder.WhereIndex = this.QueryBuilder.WhereIndex;
|
||||||
asyncQueryableBuilder.EntityType = this.QueryBuilder.EntityType;
|
asyncQueryableBuilder.EntityType = this.QueryBuilder.EntityType;
|
||||||
asyncQueryableBuilder.EntityName = this.QueryBuilder.EntityName;
|
asyncQueryableBuilder.EntityName = this.QueryBuilder.EntityName;
|
||||||
asyncQueryableBuilder.Parameters = this.QueryBuilder.Parameters;
|
asyncQueryableBuilder.Parameters = pars;
|
||||||
asyncQueryableBuilder.TableShortName = this.QueryBuilder.TableShortName;
|
asyncQueryableBuilder.TableShortName = this.QueryBuilder.TableShortName;
|
||||||
asyncQueryableBuilder.TableWithString = this.QueryBuilder.TableWithString;
|
asyncQueryableBuilder.TableWithString = this.QueryBuilder.TableWithString;
|
||||||
asyncQueryableBuilder.GroupByValue = this.QueryBuilder.GroupByValue;
|
asyncQueryableBuilder.GroupByValue = this.QueryBuilder.GroupByValue;
|
||||||
@@ -1473,7 +1475,7 @@ namespace SqlSugar
|
|||||||
public new ISugarQueryable<T,T2> Clone()
|
public new ISugarQueryable<T,T2> Clone()
|
||||||
{
|
{
|
||||||
var queryable = this.Context.Queryable<T,T2>((t,t2)=>new object[] { }).WithCacheIF(IsCache, CacheTime);
|
var queryable = this.Context.Queryable<T,T2>((t,t2)=>new object[] { }).WithCacheIF(IsCache, CacheTime);
|
||||||
base.CopyQueryBuilder(this.QueryBuilder);
|
base.CopyQueryBuilder(queryable.QueryBuilder);
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2> AS<AsT>(string tableName)
|
public new ISugarQueryable<T, T2> AS<AsT>(string tableName)
|
||||||
@@ -1756,7 +1758,7 @@ namespace SqlSugar
|
|||||||
public new ISugarQueryable<T, T2,T3> Clone()
|
public new ISugarQueryable<T, T2,T3> Clone()
|
||||||
{
|
{
|
||||||
var queryable = this.Context.Queryable<T, T2,T3>((t, t2,t3) => new object[] { }).WithCacheIF(IsCache, CacheTime);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3> AS<AsT>(string tableName)
|
public new ISugarQueryable<T, T2, T3> AS<AsT>(string tableName)
|
||||||
@@ -2071,7 +2073,7 @@ namespace SqlSugar
|
|||||||
public new ISugarQueryable<T, T2,T3,T4> Clone()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> AS<AsT>(string tableName)
|
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()
|
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);
|
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;
|
return queryable;
|
||||||
}
|
}
|
||||||
public new ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> AS<AsT>(string tableName)
|
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);
|
expressionContext.Resolve(joinExpression, ResolveExpressType.Join);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
var joinArray = MergeJoinArray(expressionContext.Result.GetResultArray());
|
var joinArray = MergeJoinArray(expressionContext.Result.GetResultArray());
|
||||||
|
if (joinArray == null) return null;
|
||||||
parameters = expressionContext.Parameters;
|
parameters = expressionContext.Parameters;
|
||||||
foreach (var entityType in entityTypeArray)
|
foreach (var entityType in entityTypeArray)
|
||||||
{
|
{
|
||||||
@@ -381,6 +382,7 @@ namespace SqlSugar
|
|||||||
List<string> result = new List<string>();
|
List<string> result = new List<string>();
|
||||||
string joinValue = null;
|
string joinValue = null;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
if (joinArray == null) return null;
|
||||||
foreach (var item in joinArray)
|
foreach (var item in joinArray)
|
||||||
{
|
{
|
||||||
++i;
|
++i;
|
||||||
|
|||||||
Reference in New Issue
Block a user