我希望得到一些关于最佳方式/好方法的反馈,以便在表行更改中处理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 approachRow 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
答案 0 :(得分:1)
您只需使用timestamp
或rowversion
数据类型在表中创建一个特殊列(这些名称适用于SQL Server,在其他数据库中可能有所不同)。这种类型确实具有魔力。如果更新了行,则列的值会更改。您只需要使用ConcurrencyMode.Fixed
标记此列。