【问题标题】:problems with timestamp and concurrency时间戳和并发问题
【发布时间】:2013-05-28 17:02:37
【问题描述】:

我正在使用 EF 4.0,并且我的数据库中有一个带有时间戳字段的表,因为我想控制该表中的并发性。

然后,我创建了我的 edmx,并使用模板 DBContext 生成了 POCO 类。

我做的第一次尝试是,在 edmx 的时间戳字段中,我将存储的生成模式设置为无。然后在我的代码中:

myContext.MyTable.Attach(myEntity);
myContext.Entry<MyTable>(myEntity).Property(p => p.AnyFieldNoTimestamp).IsModified = true;
myContext.SaveChanges();

这给了我一个例外,说不能更新时间戳列。

如果我只标记了一个要修改的字段,而这个字段不是时间戳,为什么会出现这个错误?

然后我尝试将 edmx 中存储的生成模式设置为 Indentity。

真的,我有一个事务和两个 saveChanges。在第二次尝试中,第一次 savechanges 没有给出任何错误,但在第二次 savechanges 中我得到了异常 0 行受影响,因为实体的时间戳似乎从第一次 savechanges 更改为第二次,所以在并发控制中我得到了这个例外。

所以我想知道如何在事务中使用时间戳字段和两个保存时间。

谢谢。

【问题讨论】:

    标签: c# entity-framework-4 concurrency timestamp


    【解决方案1】:

    我尝试使用 Computed 集,在这种情况下可以正常工作。

    【讨论】:

      猜你喜欢
      • 2011-03-16
      • 1970-01-01
      • 2017-04-02
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多