page contents

使用EF update 怎么保证在并发时数据正确?

轩辕小不懂 发布于 2022-03-01 14:59
阅读 557
收藏 0
分类:框架系列
3183
Nen
Nen
- 程序员

 1、RowVersion ( TimeStamp )  时间戳

EF实现Rowversion 并发控制 需要借助 TimeStamp 标示 ,并且一个类只能有 一个此标示,标示的必须是byte[]类型。使用Rowversion会对整行数据进行并发检测。

2、 ConcurrencyCheck

有些时候并不需要控制针对整条记录的并发,只需要控制某个列的数据不会出现脏操作就ok,这个时候 就使用ConcurrencyCheck 。你必须将ConcurrencyCheck特性添加到实体需要控制并发的非主键属性上,使实体框架可以将所有标记的列包含到更新语句的Where子句中。

3、 DbUpdateConcurrencyException

您可以通过EF实体框架引发的DbUpdateConcurrencyException异常处理来解决冲突。

请先 登录 后评论