实体框架ObjectContext:并发

时间:2010-08-05 07:46:08

标签: entity-framework concurrency

我正在尝试使用具有Entity Framework和Repository模式的MVC应用程序 在该应用中,最终用户可以在其会话期间通过多个http请求修改不同的实体数据。 (向导页面的种类) 但是,在单击最终提交按钮之前,它们会提交这些修改 这些也可以选择离开,在这种情况下,他们的工作应该回滚。

我想知道如果两个用户做同样的事情并且其中一个点击提交按钮会发生什么 我想这两个用户所做的更改都已提交!!!

我想我需要通过用户连接或会话来创建对象上下文 非常欢迎您的评论

1 个答案:

答案 0 :(得分:1)

上下文应该只用于最初获取数据一次,一次用于持久化 (没有长期存在的'多http请求'上下文)。

所以你要这样做:

  1. 创建上下文,获取数据,处理上下文。
  2. 以您喜欢的任何方式管理用户对多个请求的数据更改(不使用上下文),例如会话,隐藏字段等。
  3. 创建上下文,持久修改实体,处理上下文。
  4. 关于第2步 - 我建议在ViewModels中使用特定对象(EntityObjects)而不是Views进行用户互动。