Synchronization code

This commit is contained in:
sunkaixuan
2023-08-18 15:17:54 +08:00
parent ae3d04b874
commit 9f7706baad
5 changed files with 21 additions and 14 deletions

View File

@@ -334,14 +334,14 @@ namespace SqlSugar
} }
public IDeleteable<T> WhereColumns(List<T> list,Expression<Func<T, object>> columns) public IDeleteable<T> WhereColumns(List<T> list,Expression<Func<T, object>> columns)
{ {
if (this.GetPrimaryKeys().IsNullOrEmpty()) if (columns!=null)
{
tempPrimaryKeys = DeleteBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList();
}
else if (columns != null && tempPrimaryKeys.IsNullOrEmpty())
{ {
tempPrimaryKeys = DeleteBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList(); tempPrimaryKeys = DeleteBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList();
} }
//else if (columns != null && tempPrimaryKeys.IsNullOrEmpty())
//{
// tempPrimaryKeys = DeleteBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList();
//}
this.Where(list); this.Where(list);
return this; return this;

View File

@@ -340,7 +340,7 @@ namespace SqlSugar
} }
return result; return result;
} }
public List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue) public List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, Expression<Func<T, object>> primaryKeyExpression)
{ {
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>(); var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
var pk = ExpressionTool.GetMemberName(primaryKeyExpression); var pk = ExpressionTool.GetMemberName(primaryKeyExpression);
@@ -359,7 +359,7 @@ namespace SqlSugar
var list = this.ToList(); var list = this.ToList();
return TreeAndFilterIds(childListExpression, parentIdExpression, rootValue, childIds, ref list) ?? new List<T>(); return TreeAndFilterIds(childListExpression, parentIdExpression, rootValue, childIds, ref list) ?? new List<T>();
} }
public List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue, object[] childIds) public List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds, Expression<Func<T, object>> primaryKeyExpression)
{ {
var list = this.ToList(); var list = this.ToList();
return TreeAndFilterIds(childListExpression, parentIdExpression,primaryKeyExpression, rootValue, childIds, ref list) ?? new List<T>(); return TreeAndFilterIds(childListExpression, parentIdExpression,primaryKeyExpression, rootValue, childIds, ref list) ?? new List<T>();

View File

@@ -585,7 +585,7 @@ ParameterT parameter)
var list = await this.ToListAsync(); var list = await this.ToListAsync();
return TreeAndFilterIds(childListExpression, parentIdExpression, rootValue, childIds, ref list) ?? new List<T>(); return TreeAndFilterIds(childListExpression, parentIdExpression, rootValue, childIds, ref list) ?? new List<T>();
} }
public async Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue, object[] childIds) public async Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds, Expression<Func<T, object>> primaryKeyExpression)
{ {
var list = await this.ToListAsync(); var list = await this.ToListAsync();
return TreeAndFilterIds(childListExpression, parentIdExpression,primaryKeyExpression, rootValue, childIds, ref list) ?? new List<T>(); return TreeAndFilterIds(childListExpression, parentIdExpression,primaryKeyExpression, rootValue, childIds, ref list) ?? new List<T>();
@@ -597,7 +597,7 @@ ParameterT parameter)
var list = await this.ToListAsync(); var list = await this.ToListAsync();
return GetTreeRoot(childListExpression, parentIdExpression, pk, list, rootValue) ?? new List<T>(); return GetTreeRoot(childListExpression, parentIdExpression, pk, list, rootValue) ?? new List<T>();
} }
public async Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue) public async Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, Expression<Func<T, object>> primaryKeyExpression)
{ {
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>(); var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
var pk = ExpressionTool.GetMemberName(primaryKeyExpression); ; var pk = ExpressionTool.GetMemberName(primaryKeyExpression); ;

View File

@@ -207,7 +207,14 @@ namespace SqlSugar
result.AsUpdateable.WhereColumns(whereExpression); result.AsUpdateable.WhereColumns(whereExpression);
result.AsDeleteable.WhereColumns(update.Select(it => it.Item).ToList(),whereExpression); result.AsDeleteable.WhereColumns(update.Select(it => it.Item).ToList(),whereExpression);
} }
result.AsDeleteable.Where(delete.Select(it => it.Item).ToList()); if (this.whereExpression != null)
{
result.AsDeleteable.WhereColumns(delete.Select(it => it.Item).ToList(), whereExpression);
}
else
{
result.AsDeleteable.Where(delete.Select(it => it.Item).ToList());
}
return result; return result;
} }

View File

@@ -233,13 +233,13 @@ namespace SqlSugar
Task<List<T>> ToParentListAsync(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, Expression<Func<T, bool>> parentWhereExpression); Task<List<T>> ToParentListAsync(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, Expression<Func<T, bool>> parentWhereExpression);
List<T> ToTree(Expression<Func<T,IEnumerable<object>>> childListExpression, Expression<Func<T,object>> parentIdExpression,object rootValue); List<T> ToTree(Expression<Func<T,IEnumerable<object>>> childListExpression, Expression<Func<T,object>> parentIdExpression,object rootValue);
List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue); List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, Expression<Func<T, object>> primaryKeyExpression);
Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue); Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue);
Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue); Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, Expression<Func<T, object>> primaryKeyExpression);
List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds); List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds);
List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue, object[] childIds); List<T> ToTree(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds, Expression<Func<T, object>> primaryKeyExpression);
Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds); Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds);
Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, Expression<Func<T, object>> primaryKeyExpression, object rootValue, object[] childIds); Task<List<T>> ToTreeAsync(Expression<Func<T, IEnumerable<object>>> childListExpression, Expression<Func<T, object>> parentIdExpression, object rootValue, object[] childIds, Expression<Func<T, object>> primaryKeyExpression);
DataTable ToDataTable(); DataTable ToDataTable();
DataTable ToDataTableByEntity(); DataTable ToDataTableByEntity();
Task<DataTable> ToDataTableAsync(); Task<DataTable> ToDataTableAsync();