1

我希望获得一些关于最佳方式/好方法的反馈,以处理 EF4.1 或更高版本中表行更改的逻辑行级乐观锁定。

我不喜欢标准的 concurrency=fixed on fields,因为只要更改了不同的字段,这似乎就允许并发更改。如果记录的完整性要求将所有字段视为一个集合,那么人们会怎么做?在所有字段上设置并发模式并“更新设置它们”。这个问题会出现什么模式?

我真正想做的是有一个用于并发的字段,例如 Int32。如果它同时增加,则更新失败。即一个负责并发的字段并不多。我以前是手动做的。每次更新都会在更改其设置的数据时检查 conc=conc,并且还有 conc=conc+1。

使用 EF 我只是将其设为并发字段并将其标记为 FIXED 并始终将其更新为 x=x+1,其余的由 EF 完成。

EF GURU 采用什么方法来解决行级概念。

一些帖子已经关闭但没有安静地解决这个问题。

或者深入了解有关防御的令人震惊的细节。用视图/ sps等做每一件事。

我曾希望 EF 中有一个简单的模式来解决行级方法。

我看了看...... 模型优先方法中带有时间戳属性的 EF 并发处理

实体框架的行级安全性 http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/handling-concurrency-with-the-entity-framework-in-an-asp-模型优先方法中具有时间戳属性的net-mvc-application EF 并发处理

4

1 回答 1

1

您只需使用timestamporrowversion数据类型在表中创建一个特殊列(这些名称用于 SQL Server,在其他数据库中可能不同)。这种类型确实很神奇。如果行被更新,列的值会改变。您只需用 标记此列ConcurrencyMode.Fixed

于 2012-08-18T07:56:32.360 回答