【发布时间】:2010-07-15 17:49:03
【问题描述】:
对于在多线程程序中使用 EF,您有什么好的建议吗?
我有 2 层:
- 一个 EF 层来读取/写入我的数据库
- 一个多线程服务,它使用我的实体(读/写)并进行一些计算(我在框架中使用任务并行库)
如何在每个线程中同步我的对象上下文? 你知道让它发挥作用的好模式吗?
【问题讨论】:
-
您的问题到底是什么? ObjectContext 是一个工作单元。它不是线程安全的,也不需要。每个任务使用一个 OC,你会没事的。在线程之间共享一个,你会遇到麻烦。
-
如果我每个任务使用一个 OC,我想同步我的 OC。例如,当我在 thread1 中执行 SaveChanges() 时,我想在 thread2 中刷新我的实体。
-
如果你想这样做,你最好不要打扰线程,因为你的任务实际上并不是独立的。
-
您可能想阅读 - 虽然有点老,但仍然有效 - 这篇文章 blog.cincura.net/230902-multithreading-with-entity-framework 。
标签: c# .net entity-framework multithreading locking