mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 01:58:13 +08:00
Update Mongodb
This commit is contained in:
@@ -37,5 +37,33 @@ namespace SqlSugar.MongoDb
|
||||
this.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>("$set", expResult));
|
||||
return this;
|
||||
}
|
||||
public override IUpdateable<T> SetColumns(Expression<Func<T, T>> columns, bool appendColumnsByDataFilter)
|
||||
{
|
||||
ThrowUpdateByObject();
|
||||
var expResult = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Update)
|
||||
.GetResultString();
|
||||
if (appendColumnsByDataFilter)
|
||||
{
|
||||
var newData = new T() { };
|
||||
SqlSugar.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(SqlSugar.UtilMethods.GetDefaultValue(item.UnderType)))
|
||||
{
|
||||
var pName = this.SqlBuilder.SqlParameterKeyWord + item.PropertyName + 1000;
|
||||
var p = new SugarParameter(pName, value);
|
||||
this.UpdateBuilder.Parameters.Add(p);
|
||||
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(SqlBuilder.GetTranslationColumnName(item.DbColumnName), SqlBuilder.GetTranslationColumnName(item.DbColumnName) + "=" + pName));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>("$set", expResult));
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<package >
|
||||
<metadata>
|
||||
<id>SqlSugar.MongoDbCore</id>
|
||||
<version>5.1.4.238</version>
|
||||
<version>5.1.4.241</version>
|
||||
<authors>sunkaixuan</authors>
|
||||
<owners>果糖大数据</owners>
|
||||
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>
|
||||
|
Reference in New Issue
Block a user