类型' System.InvalidOperationException'的例外情况发生在 EntityFramework.dll但未在用户代码中处理
附加信息:模型时不能使用上下文 被创造。如果使用上下文,则可能抛出此异常 在OnModelCreating方法内部或者相同的上下文实例 由多个线程同时访问。请注意实例成员 DbContext和相关类不保证是线程安全的。
IQueryable<VMPARForms> TempfilteredMember = filteredMember;
IQueryable<clsPARForms> parformslist = dbcontext.PARForms;
Parallel.ForEach(TempfilteredMember.Where(c => c.PARStatus == 21), item =>
{
var list = parformslist.Where(x => x.CaseNumber == item.CaseNumber && x.PARID != item.PARID).FirstOrDefault();
if (list != null)
{
item.PARStatus = list.PARStatus;
}
});
答案 0 :(得分:0)
我认为问题在于您正在尝试创建EF Context的多个对象。文件说
ObjectContext类不是线程安全的。在多线程方案中无法确保ObjectContext中数据对象的完整性。 The ObjectContext class is not thread safe
上下文不是线程安全的。只要多个上下文不同时跟踪同一实体类的实例,您仍然可以创建多线程应用程序。 EF Multithreading
根据您的应用程序,您可以使用ToList()
实现数据,并根据需要对其进行过滤,或尝试更改查询的逻辑。