2010-08-11 99 views
2

我正在开发与sql server一起工作的应用程序,我从多个来源读取和更新数据。实体框架并发

正因为如此,有一个更新的已更新数据的问题....

我该如何处理这个问题? (我知道EF内置并发模式,但如果我理解正确,如果我的设计创建和处置contextobject每次这将不会工作)

回答

3

秘密通常是使用时间戳字段并检查值对在你的对象之前你提交给db。有一篇关于这个主题的文章here

+0

这篇文章谈论并发模式,胸围,因为我指出,我认为它不会工作,如果重新创建我的上下文对象 – shivesh 2010-08-11 14:29:11

+0

通过设置您的时间戳的并发模式修复它将意味着它需要时间戳不变,甚至当您将传入数据附加到上下文时。如果时间戳记与您提供的时间戳记不匹配(之前在早期的上下文会话中检索到),则更新将在记录更改时失败。这在我看来是文章所说的。 – Lazarus 2010-08-11 15:36:16

+0

据我所知,只有当我为所有的数据库操作保留相同的上下文对象,但是如果我每次创建新的上下文对象如下:using(var context = new EntityContext()),它将不起作用。还是它? – shivesh 2010-08-11 15:55:12