mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-22 12:09:29 +08:00
Add Queryable.WhereColums
Add Deleteable.WhereColums
This commit is contained in:
@@ -254,21 +254,39 @@ namespace SqlSugar
|
||||
return result;
|
||||
}
|
||||
|
||||
public IDeleteable<T> WhereColumns(Expression<Func<T, object>> columns)
|
||||
public IDeleteable<T> WhereColumns(List<T> list,Expression<Func<T, object>> columns)
|
||||
{
|
||||
this.Where(list);
|
||||
if (columns != null)
|
||||
{
|
||||
tempPrimaryKeys = DeleteBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
public IDeleteable<T> WhereColumns(string [] columns)
|
||||
public IDeleteable<T> WhereColumns(List<Dictionary<string, object>> list)
|
||||
{
|
||||
if (columns != null)
|
||||
List<IConditionalModel> conditionalModels = new List<IConditionalModel>();
|
||||
foreach (var model in list)
|
||||
{
|
||||
tempPrimaryKeys = columns.ToList();
|
||||
int i = 0;
|
||||
var clist = new List<KeyValuePair<WhereType, ConditionalModel>>();
|
||||
foreach (var item in model.Keys)
|
||||
{
|
||||
clist.Add(new KeyValuePair<WhereType, ConditionalModel>(i == 0 ? WhereType.Or : WhereType.And, new ConditionalModel()
|
||||
{
|
||||
FieldName =item,
|
||||
ConditionalType = ConditionalType.Equal,
|
||||
FieldValue = model[item].ObjToString(),
|
||||
CSharpTypeName = model[item]==null?null : model[item].GetType().Name
|
||||
}));
|
||||
i++;
|
||||
}
|
||||
conditionalModels.Add(new ConditionalCollections()
|
||||
{
|
||||
ConditionalList = clist
|
||||
});
|
||||
}
|
||||
return this;
|
||||
return this.Where(conditionalModels);
|
||||
}
|
||||
public IDeleteable<T> RemoveDataCache()
|
||||
{
|
||||
|
@@ -380,6 +380,31 @@ namespace SqlSugar
|
||||
_WhereClassByPrimaryKey(new List<T>() { data });
|
||||
return this;
|
||||
}
|
||||
public ISugarQueryable<T> WhereColumns(List<Dictionary<string, object>> list)
|
||||
{
|
||||
List<IConditionalModel> conditionalModels = new List<IConditionalModel>();
|
||||
foreach (var model in list)
|
||||
{
|
||||
int i = 0;
|
||||
var clist = new List<KeyValuePair<WhereType, ConditionalModel>>();
|
||||
foreach (var item in model.Keys)
|
||||
{
|
||||
clist.Add(new KeyValuePair<WhereType, ConditionalModel>(i == 0 ? WhereType.Or : WhereType.And, new ConditionalModel()
|
||||
{
|
||||
FieldName = item,
|
||||
ConditionalType = ConditionalType.Equal,
|
||||
FieldValue = model[item].ObjToString(),
|
||||
CSharpTypeName = model[item] == null ? null : model[item].GetType().Name
|
||||
}));
|
||||
i++;
|
||||
}
|
||||
conditionalModels.Add(new ConditionalCollections()
|
||||
{
|
||||
ConditionalList = clist
|
||||
});
|
||||
}
|
||||
return this.Where(conditionalModels);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// if a property that is primary key is a condition
|
||||
|
@@ -158,9 +158,9 @@ namespace SqlSugar
|
||||
if (this.whereExpression != null)
|
||||
{
|
||||
result.AsUpdateable.WhereColumns(whereExpression);
|
||||
result.AsDeleteable.WhereColumns(whereExpression);
|
||||
result.AsDeleteable.WhereColumns(update.Select(it => it.Item).ToList(),whereExpression);
|
||||
}
|
||||
result.AsDeleteable.Where(delete.Select(it => it.Item).ToList());
|
||||
//result.AsDeleteable.Where(delete.Select(it => it.Item).ToList());
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -240,9 +240,9 @@ namespace SqlSugar
|
||||
if (this.whereExpression != null)
|
||||
{
|
||||
result.AsUpdateable.WhereColumns(whereExpression);
|
||||
result.AsDeleteable.WhereColumns(whereExpression);
|
||||
result.AsDeleteable.WhereColumns(delete.Select(it => it.Item).ToList(),whereExpression);
|
||||
}
|
||||
result.AsDeleteable.Where(delete.Select(it => it.Item).ToList());
|
||||
//result.AsDeleteable.Where(delete.Select(it => it.Item).ToList());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@@ -29,8 +29,8 @@ namespace SqlSugar
|
||||
IDeleteable<T> Where(string whereString, SugarParameter parameter);
|
||||
IDeleteable<T> Where(string whereString, SugarParameter[] parameters);
|
||||
IDeleteable<T> Where(string whereString, List<SugarParameter> parameters);
|
||||
IDeleteable<T> WhereColumns(Expression<Func<T, object>> columns);
|
||||
IDeleteable<T> WhereColumns(string [] columns);
|
||||
IDeleteable<T> WhereColumns(List<T> list,Expression<Func<T, object>> columns);
|
||||
IDeleteable<T> WhereColumns(List<Dictionary<string,object>> columns);
|
||||
IDeleteable<T> Where(List<IConditionalModel> conditionalModels);
|
||||
IDeleteable<T> EnableDiffLogEvent(object businessData = null);
|
||||
IDeleteable<T> RemoveDataCache();
|
||||
|
@@ -52,6 +52,7 @@ namespace SqlSugar
|
||||
ISugarQueryable<T> WhereClass<ClassType>(List<ClassType> whereClassList,bool ignoreDefaultValue = false) where ClassType : class, new();
|
||||
ISugarQueryable<T> WhereClassByPrimaryKey(List<T> list);
|
||||
ISugarQueryable<T> WhereClassByPrimaryKey(T data) ;
|
||||
ISugarQueryable<T> WhereColumns(List<Dictionary<string, object>> columns);
|
||||
ISugarQueryable<T> Where(Expression<Func<T, bool>> expression);
|
||||
ISugarQueryable<T> Where(string whereString, object parameters = null);
|
||||
ISugarQueryable<T> Where(List<IConditionalModel> conditionalModels);
|
||||
|
Reference in New Issue
Block a user