mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-15 05:13:27 +08:00
Update query in query select subquery bug
This commit is contained in:
parent
4dfa4e85ea
commit
4186e0820e
@ -142,6 +142,11 @@ namespace OrmTest
|
||||
{
|
||||
it.UnitA002 = db.Queryable<UnitA002>().SetContext(x => x.orgid, () => it.id, it).First();
|
||||
});
|
||||
db.Queryable(db.Queryable<Order>())
|
||||
.Select(it => new
|
||||
{
|
||||
x = SqlFunc.Subqueryable<Order>().Where(z => z.Id == it.Id).Any()
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
public class UnitA001
|
||||
|
@ -2943,6 +2943,7 @@ namespace SqlSugar
|
||||
_Size=it._Size
|
||||
}).ToList();
|
||||
}
|
||||
asyncQueryableBuilder.IsQueryInQuery = this.QueryBuilder.IsQueryInQuery;
|
||||
asyncQueryableBuilder.Includes = this.QueryBuilder.Includes;
|
||||
asyncQueryableBuilder.Take = this.QueryBuilder.Take;
|
||||
asyncQueryableBuilder.Skip = this.QueryBuilder.Skip;
|
||||
|
@ -33,6 +33,7 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#region Splicing basic
|
||||
public bool IsQueryInQuery { get; set; }
|
||||
public List<object> Includes { get; set; }
|
||||
public List<string> IgnoreColumns { get; set; }
|
||||
public bool IsCount { get; set; }
|
||||
@ -641,6 +642,18 @@ namespace SqlSugar
|
||||
if (this.AsTables.Any(it=>it.Key==EntityName))
|
||||
{
|
||||
name = this.AsTables.FirstOrDefault(it => it.Key == EntityName).Value;
|
||||
if (this.IsQueryInQuery && this.SelectValue != null && this.SelectValue is Expression)
|
||||
{
|
||||
if (this.SelectValue.ToString().Contains("Subqueryable()")&& name.TrimStart().StartsWith("("))
|
||||
{
|
||||
var oldName = name;
|
||||
name = Regex.Match(name, @"\(.+\)").Value;
|
||||
if (name.IsNullOrEmpty())
|
||||
{
|
||||
name = oldName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var result = Builder.GetTranslationTableName(name);
|
||||
result += UtilConstants.Space;
|
||||
|
@ -346,6 +346,7 @@ namespace SqlSugar
|
||||
|
||||
var result= this.Context.Queryable<T>(queryable);
|
||||
var QueryBuilder = queryable.QueryBuilder;
|
||||
result.QueryBuilder.IsQueryInQuery = true;
|
||||
result.QueryBuilder.WhereIndex = QueryBuilder.WhereIndex++;
|
||||
result.QueryBuilder.LambdaExpressions.ParameterIndex = QueryBuilder.LambdaExpressions.ParameterIndex++;
|
||||
result.QueryBuilder.LambdaExpressions.Index = QueryBuilder.LambdaExpressions.Index++;
|
||||
|
Loading…
Reference in New Issue
Block a user