mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
Add : UpdateColumns(Expression<Func<T, object>> columns, bool appendColumnsByDataFilter)
This commit is contained in:
parent
f13fba5f66
commit
7805725a3e
@ -518,7 +518,12 @@ namespace SqlSugar
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public IUpdateable<T> UpdateColumns(Expression<Func<T, object>> columns, bool appendColumnsByDataFilter)
|
||||
{
|
||||
ThrowUpdateByExpression();
|
||||
var updateColumns = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList();
|
||||
return UpdateColumns(updateColumns.ToArray(), appendColumnsByDataFilter);
|
||||
}
|
||||
public IUpdateable<T> UpdateColumns(Expression<Func<T, object>> columns)
|
||||
{
|
||||
ThrowUpdateByExpression();
|
||||
@ -540,6 +545,29 @@ namespace SqlSugar
|
||||
//this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => updateColumns.Any(uc => uc.Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase) || uc.Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey || it.IsIdentity).ToList();
|
||||
return this;
|
||||
}
|
||||
public IUpdateable<T> UpdateColumns(string[] columns, bool appendColumnsByDataFilter)
|
||||
{
|
||||
List<string> updateColumns = new List<string>();
|
||||
if (appendColumnsByDataFilter)
|
||||
{
|
||||
var newData = new T() { };
|
||||
UtilMethods.ClearPublicProperties(newData, this.EntityInfo);
|
||||
var data = ((UpdateableProvider<T>)this.Context.Updateable(newData)).UpdateObjs.First();
|
||||
foreach (var item in this.EntityInfo.Columns.Where(it => !it.IsPrimarykey && !it.IsIgnore && !it.IsOnlyIgnoreUpdate))
|
||||
{
|
||||
var value = item.PropertyInfo.GetValue(data);
|
||||
if (value != null && !value.Equals(""))
|
||||
{
|
||||
if (!value.Equals(UtilMethods.GetDefaultValue(item.UnderType)))
|
||||
{
|
||||
updateColumns.Add(item.PropertyName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
updateColumns.AddRange(columns);
|
||||
return UpdateColumns(updateColumns.ToArray());
|
||||
}
|
||||
public IUpdateable<T> UpdateColumns(string[] columns)
|
||||
{
|
||||
if (columns == null||columns.Length==0) return this;
|
||||
|
@ -60,7 +60,9 @@ namespace SqlSugar
|
||||
/// <param name="columns"></param>
|
||||
/// <returns></returns>
|
||||
IUpdateable<T> UpdateColumns(Expression<Func<T, object>> columns);
|
||||
IUpdateable<T> UpdateColumns(Expression<Func<T, object>> columns, bool appendColumnsByDataFilter);
|
||||
IUpdateable<T> UpdateColumns(params string[] columns);
|
||||
IUpdateable<T> UpdateColumns(string[] columns,bool appendColumnsByDataFilter);
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
Loading…
Reference in New Issue
Block a user