在 web 应用程序的乐观并发场景中,我正在考虑为每个表提供时间戳列 (sqlserver),与 guid 相当。然后,Linq to entity 将生成 sql 更新查询,例如WHERE id = @p0 AND timestamp = @p1
在 Entity Framework 中使用特定属性装饰时间戳列时。当返回的更新记录数是0
我们检测到并发异常。
在很多帖子中,我正在阅读有关自我跟踪实体的文章,这可能是一种替代或更好的解决方案。但我没有看到比上述“简单”时间戳方法有任何优势。除了数据库不可变且不提供时间戳列的情况。
哪种解决方案更好,为什么?
编辑
Yury Tarabanko 正确地指出 STE 是另一个概念。然而,zeeshanhirani 的回答表明并发检查是跟踪更改的主要动机之一。
让我们重新表述这个问题:为什么有人会使用 STE 概念进行并发检查,而“时间戳列”方法看起来要容易得多。