diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSql.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSql.cs index 47f5b4727..1a9aa5a54 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSql.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSql.cs @@ -244,7 +244,18 @@ namespace SqlSugar var list = this.ToList(); return GetChildList(parentIdExpression, pk, list, primaryKeyValue, isContainOneself); } - + public List ToChildList(Expression> parentIdExpression, object [] primaryKeyValues, bool isContainOneself = true) + { + var entity = this.Context.EntityMaintenance.GetEntityInfo(); + var pk = GetTreeKey(entity); + var list = this.ToList(); + List result = new List(); + foreach (var item in primaryKeyValues) + { + result.AddRange(GetChildList(parentIdExpression, pk, list, item, isContainOneself)); + } + return result; + } public List ToParentList(Expression> parentIdExpression, object primaryKeyValue) { var entity = this.Context.EntityMaintenance.GetEntityInfo(); diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs index 02202f5bf..4e48d6d06 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableExecuteSqlAsync.cs @@ -675,7 +675,18 @@ ParameterT parameter) return GetChildList(parentIdExpression, pk, list, primaryKeyValue, isContainOneself); } - + public async Task> ToChildListAsync(Expression> parentIdExpression, object[] primaryKeyValues, bool isContainOneself = true) + { + var entity = this.Context.EntityMaintenance.GetEntityInfo(); + var pk = GetTreeKey(entity); + var list =await this.ToListAsync(); + List result = new List(); + foreach (var item in primaryKeyValues) + { + result.AddRange(GetChildList(parentIdExpression, pk, list, item, isContainOneself)); + } + return result; + } public Task IntoTableAsync(CancellationToken cancellationToken = default) { return IntoTableAsync(typeof(TableEntityType), cancellationToken); diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs index 408a07a29..f0b86d691 100644 --- a/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IQueryable.cs @@ -220,7 +220,9 @@ namespace SqlSugar KeyValuePair> ToSql(); string ToSqlString(); List ToChildList(Expression> parentIdExpression, object primaryKeyValue, bool isContainOneself = true); + List ToChildList(Expression> parentIdExpression, object[] primaryKeyValues, bool isContainOneself = true); Task> ToChildListAsync(Expression> parentIdExpression, object primaryKeyValue, bool isContainOneself = true); + Task> ToChildListAsync(Expression> parentIdExpression, object[] primaryKeyValues, bool isContainOneself = true); List ToParentList(Expression> parentIdExpression, object primaryKeyValue); List ToParentList(Expression> parentIdExpression, object primaryKeyValue, Expression> parentWhereExpression);