我创建了一个上下文,然后使用 Parallel.ForEach(...) 我同时执行多个 EF 查询。
我一直在遇到'连接没有关闭。连接的当前状态是正在连接。以及沿着这些方向的其他例外。
我这是由于我的应用程序的线程性质吗?您不能同时使用单个上下文来简单地阅读吗?
我创建了一个上下文,然后使用 Parallel.ForEach(...) 我同时执行多个 EF 查询。
我一直在遇到'连接没有关闭。连接的当前状态是正在连接。以及沿着这些方向的其他例外。
我这是由于我的应用程序的线程性质吗?您不能同时使用单个上下文来简单地阅读吗?
对象上下文不是线程安全的,因此您可能不想在多线程场景中使用 Parrallel.Foreach
但是,您可以在启用 MARS 的情况下并行在同一连接上执行多个查询
foreach (var employee in context.employees.where(...))
{
var department = employee.departments.FirstOrDefault(...);
}
但是,您需要了解性能。