使用单个上下文容器同时使用线程执行多个查询?

时间:2012-09-18 01:35:20

标签: c# .net multithreading entity-framework entity-framework-4

我创建了一个上下文然后使用Parallel.ForEach(...)我同时执行多个EF查询。

我一直在遇到'连接没有关闭。连接的当前状态是连接。和其他例外情况。

我这是因为我的应用程序的线程性质?您是否可以同时使用单一上下文来简单阅读?

1 个答案:

答案 0 :(得分:3)

Object context不是线程安全的,因此您可能不想在多线程场景中使用Parrallel.Foreach

但是,您可以在启用MARS的同一连接上执行多个查询,例如

foreach (var employee in context.employees.where(...))
{
   var department = employee.departments.FirstOrDefault(...);
}

但是,您需要了解性能。