0

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

我一直在遇到'连接没有关闭。连接的当前状态是正在连接。以及沿着这些方向的其他例外。

我这是由于我的应用程序的线程性质吗?您不能同时使用单个上下文来简单地阅读吗?

4

1 回答 1

3

对象上下文不是线程安全的,因此您可能不想在多线程场景中使用 Parrallel.Foreach

但是,您可以在启用 MARS 的情况下并行在同一连接上执行多个查询

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

但是,您需要了解性能。

于 2012-09-18T01:54:43.067 回答