Update db.Updateable(exp,exp)

This commit is contained in:
sunkaixuan
2024-01-24 15:04:28 +08:00
parent 7af35eb55c
commit 13079511d6

View File

@@ -707,12 +707,22 @@ namespace SqlSugar
return SetColumns(filedNameExpression,(object)null);
}
var name = UpdateBuilder.GetExpressionValue(filedNameExpression, ResolveExpressType.FieldSingle).GetString();
//name = UpdateBuilder.Builder.GetNoTranslationColumnName(name);
name = UpdateBuilder.Builder.GetTranslationColumnName(name);
var value = UpdateBuilder.GetExpressionValue(ExpressionTool.RemoveConvert(valueExpression), ResolveExpressType.WhereSingle).GetString();
value = $" {name}={value} ";
this.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(name,value));
this.UpdateBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList.Where(it => (UpdateParameterIsNull == false && IsPrimaryKey(it)) || UpdateBuilder.SetValues.Any(v => SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.DbColumnName, StringComparison.CurrentCultureIgnoreCase) || SqlBuilder.GetNoTranslationColumnName(v.Key).Equals(it.PropertyName, StringComparison.CurrentCultureIgnoreCase)) || it.IsPrimarykey == true).ToList();
AppendSets();
if (typeof(T) == UtilConstants.ObjType)
{
this.UpdateBuilder.DbColumnInfoList.Add(new DbColumnInfo()
{
DbColumnName = UpdateBuilder.Builder.GetNoTranslationColumnName(name),
Value = value,
PropertyName = name,
SqlParameterDbType = typeof(SqlSugar.DbConvert.NoParameterCommonPropertyConvert)
});
}
return this;
}
public IUpdateable<T> SetColumns(Expression<Func<T, object>> filedNameExpression, object fieldValue)