EF> = 4.1。并发处理,逻辑行级检查

时间:2012-08-18 02:01:36

标签: entity-framework concurrency

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

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

我真正想做的是拥有一个用于并发的字段,例如Int32。 如果它在平均时间内增加,则更新失败。 即一个负责并发的字段并不多。 我曾经手动做过。 每次更新在更改正在设置的数据时检查conc = conc,并且还具有conc = conc + 1。

使用EF我只是将它作为并发字段并将其标记为FIXED并始终将其更新为x = x + 1,而EF则完成剩下的工作。

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

有些帖子很接近,但没有安静地解决这个问题。

或深入了解防御的详细信息。用视图/ sps等做所有事情。

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

我看着...... EF Concurrency Handling with Timestamp attribute in Model First approach

Row Level Security with Entity Framework 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 Concurrency Handling with Timestamp attribute in Model First approach

1 个答案:

答案 0 :(得分:1)

您只需使用timestamprowversion数据类型在表中创建一个特殊列(这些名称适用于SQL Server,在其他数据库中可能有所不同)。这种类型确实具有魔力。如果更新了行,则列的值会更改。您只需要使用ConcurrencyMode.Fixed标记此列。