更新

1、根据实体对象更新

根据实体更新需要给实体配置主键,参考文档实体配置

更新数据 - 图1

获取数据库时间,因没办法使用SqlFunc函数只能这么写

更新数据 - 图2

不更新 Name 和TestId

更新数据 - 图3

只更新 Name 和 CreateTime

更新数据 - 图4

只更新不为null的字段

更新数据 - 图5

特殊情况没有主键

用法同上唯一区别就是用WhereColumns指定条件

更新数据 - 图6

2、 根据表达式更新

根据表达式更新和上面的实体更新有着本质的区别,实体更新是要处理实体里面哪些字段要更新哪些不要更新

表达式则是需要更新什么写什,哪种方式都可以就看你喜欢哪一种

优点:

1、需要更新什么写什么

2、支持SqlFunc函数也支持字段相加比如 Num=it.Num+1

缺点:

1、批量操作支持有限

2、没有实体更新节约代码

更新数据 - 图7

下面是简写实现功能一样

更新数据 - 图8

在原有字段实现+1更新

更新数据 - 图9

Set语法是支持多个的

更新数据 - 图10

3、根据字典更新

更新数据 - 图11

4、DataTable更新

更新数据 - 图12

5、异步

.ExecuteCommand换成.ExecuteCommandAsync

数据的版本控制

1、时间戳更新方式

数据库必须自已能处理时间戳的变更,如果不能使用Datetime方式

SqlServer的时间戳类型是支持数据变更后自动变更的,其它数据库暂时不清楚

更新数据 - 图13

实体结构

更新数据 - 图14

2、DateTime方式

这种方式需要更新完后手动更新时间

更新数据 - 图15

实体结构

更新数据 - 图16