MyDAL - .UpdateAsync() 之 .SetSegment 根据条件 动态设置 要更新的字段 使用

时间:2021-12-26 23:09:06

索引:

目录索引

一.API 列表

  1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段

    见如下示例.

二.API 单表-完整 方法 举例

             // update 要赋值的变量
var time = DateTime.Now.ToString();
var propertyVal = "{xxx:yyy,mmm:nnn,zzz:aaa}"; // 使用 SetSegment 动态 拼接 set field 起点
var set = Conn.Updater<BodyFitRecord>().SetSegment; // 根据 条件 判断 是否要对字段 CreatedOn 进行 update
if (!time.IsNullStr())
{
set = set.Set(it => it.CreatedOn, DateTime.Parse(time));
} // 根据 条件 判断 是否要对字段 BodyMeasureProperty 进行 update
if (!propertyVal.IsNullStr())
{
set = set.Set(it => it.BodyMeasureProperty, propertyVal);
} // 对 SetSegment 设定的字段 进行 update 动作
var res1 = await set
.Where(it => it.Id == m.Id)
.UpdateAsync(); Assert.True(res1 == );

  以 MySQL 为例,生成 SQL 如下:

 update `bodyfitrecord`
set `CreatedOn_col`=?CreatedOn_col_1,
`BodyMeasureProperty`=?BodyMeasureProperty_2
where `Id`=?Id_3;

                                         蒙

                                    2019-04-13 23:59 周六