欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-18 10:14:01
索引: 目录索引 一.API 列表 1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段 见如下示例. 二.API 单表-完整 方法 举例 以 MySQL 为例,生成 SQL 如下: 蒙 2019-04-13 23:59 周六 ......

索引:

目录索引

一.api 列表

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

    见如下示例.

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

 

 1             // update 要赋值的变量
 2             var time = datetime.now.tostring();
 3             var propertyval = "{xxx:yyy,mmm:nnn,zzz:aaa}";
 4 
 5             // 使用 setsegment 动态 拼接 set field 起点
 6             var set = conn.updater<bodyfitrecord>().setsegment;
 7 
 8             // 根据 条件 判断 是否要对字段 createdon 进行 update
 9             if (!time.isnullstr())
10             {
11                 set = set.set(it => it.createdon, datetime.parse(time));
12             }
13 
14             // 根据 条件 判断 是否要对字段 bodymeasureproperty 进行 update
15             if (!propertyval.isnullstr())
16             {
17                 set = set.set(it => it.bodymeasureproperty, propertyval);
18             }
19 
20             // 对 setsegment 设定的字段 进行 update 动作
21             var res1 = await set
22                 .where(it => it.id == m.id)
23                .updateasync();
24 
25             assert.true(res1 == 1);

  以 mysql 为例,生成 sql 如下:

1 update `bodyfitrecord`
2 set `createdon_col`=?createdon_col_1,
3     `bodymeasureproperty`=?bodymeasureproperty_2
4 where  `id`=?id_3;

 

 

 

                                         蒙

                                    2019-04-13 23:59 周六