Handle concurrency problem by Entity Framework

Database concurrency

A concurrency conflict occurs when multiple users try to change the same data simultaneously. For example, if user one and user two load the same product from database, the user who clicks submit button last will be the one who wins, and the user's data will override the first user's data without any warning being given to either user.


How to handle the concurrency problem?

A. Pessimistic concurrency. This approach uses the database row lock. Obviously, this approach has performance problem.

B. Optimistic concurrency. This approach verifies that the data to be updated has not been modified after retrieving. Entity framework supports this approach.


With entity framework, you need to define a timestamp column in the database table, then you need to put a [Timestamp] attribute for the column in the entity model. Then when you try to update a table, entity framework will check if the data has been changed by comparing the time stamp filed, if it has been changed , then entity framework will throw a exception of OptimisticConcurrencyException.

But Timestamp data type of SQL Server will be removed in the future, one new equivalent data type rowversion should be used.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值