diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 79b4f74a8..1f4f5d651 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -1097,93 +1097,6 @@
-
-
- 动态创建实体类型
-
-
-
-
- 配置Class
-
- 类名
- 类标记的特性[Table(Name = "xxx")] [Index(xxxx)]
-
-
-
-
- 获取类型构建器,可作为要构建的Type来引用
-
-
-
-
- 配置属性
-
- 属性名称
- 属性类型
- 属性标记的特性-支持多个
-
-
-
-
- 配置属性
-
- 属性名称
- 属性类型
- 该属性是否重写父类属性
- 属性标记的特性-支持多个
-
-
-
-
- 配置属性
-
- 属性名称
- 属性类型
- 该属性是否重写父类属性
- 属性默认值
- 属性标记的特性-支持多个
-
-
-
-
- 配置父类
-
- 父类类型
-
-
-
-
- Override属性
-
-
-
-
-
- Emit动态创建出Class - Type
-
-
-
-
-
- Emit动态创建出Class - Type,不附带获取TableInfo
-
-
-
-
-
- 首字母小写
-
-
-
-
-
-
- 首字母大写
-
-
-
-
获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 ""
@@ -3299,6 +3212,15 @@
新值
+
+
+ 设置列的新值,SetByPropertyName("Name", "newvalue")
+ 机制同 ISelect.WhereDynamicFilter/OrderByPropertyName
+
+
+
+
+
设置列的新值,Set(a => a.Name, "newvalue")
@@ -3309,6 +3231,16 @@
新值
+
+
+ 设置列的新值,SetByPropertyNameIf(true, "Name", "newvalue")
+ 机制同 ISelect.WhereDynamicFilter/OrderByPropertyName
+
+ true 时生效
+
+
+
+
设置列的新值为基础上增加,格式:Set(a => a.Clicks + 1) 相当于 clicks=clicks+1
@@ -5990,28 +5922,6 @@
对象池
-
-
- 动态构建Class Type
-
-
-
-
-
- 根据字典,创建 table 对应的实体对象
-
-
-
-
-
-
-
- 根据实体对象,创建 table 对应的字典
-
-
-
-
-
C#: that >= between && that <= and
diff --git a/FreeSql/Interface/Curd/IUpdate.cs b/FreeSql/Interface/Curd/IUpdate.cs
index 70e6d8135..ad6e42b87 100644
--- a/FreeSql/Interface/Curd/IUpdate.cs
+++ b/FreeSql/Interface/Curd/IUpdate.cs
@@ -150,6 +150,14 @@ namespace FreeSql
///
IUpdate Set(Expression> column, TMember value);
///
+ /// 设置列的新值,SetByPropertyName("Name", "newvalue")
+ /// 机制同 ISelect.WhereDynamicFilter/OrderByPropertyName
+ ///
+ ///
+ ///
+ ///
+ IUpdate SetByPropertyName(string column, object value);
+ ///
/// 设置列的新值,Set(a => a.Name, "newvalue")
///
///
@@ -159,6 +167,15 @@ namespace FreeSql
///
IUpdate SetIf(bool condition, Expression> column, TMember value);
///
+ /// 设置列的新值,SetByPropertyNameIf(true, "Name", "newvalue")
+ /// 机制同 ISelect.WhereDynamicFilter/OrderByPropertyName
+ ///
+ /// true 时生效
+ ///
+ ///
+ ///
+ IUpdate SetByPropertyNameIf(bool condition, string column, object value);
+ ///
/// 设置列的新值为基础上增加,格式:Set(a => a.Clicks + 1) 相当于 clicks=clicks+1
///
/// 指定更新,格式:Set(a => new T { Clicks = a.Clicks + 1, Time = DateTime.Now }) 相当于 set clicks=clicks+1,time='2019-06-19....'
diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
index 6aa7d3cb0..3ed76d6b0 100644
--- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs
+++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs
@@ -672,6 +672,17 @@ namespace FreeSql.Internal.CommonProvider
SetPriv(cols.First().Column, value);
return this;
}
+ public IUpdate SetByPropertyNameIf(bool condition, string propertyName, object value)=> condition ? SetByPropertyName(propertyName, value) : this;
+ public IUpdate SetByPropertyName(string propertyName, object value)
+ {
+ var alias = "t_" + Guid.NewGuid().ToString("n").Substring(0, 8);
+ var tempQuery = _orm.Select