首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parallel.ForEach错误

Parallel.ForEach错误
EN

Stack Overflow用户
提问于 2018-02-14 05:24:03
回答 1查看 639关注 0票数 0

“System.InvalidOperationException”类型的异常发生在EntityFramework.dll中,但未在用户代码中处理 附加信息:在创建模型时不能使用上下文。如果上下文在OnModelCreating方法中使用,或者同一个上下文实例由多个线程并发访问,则可能引发此异常。注意,DbContext和相关类的实例成员不能保证线程安全。

代码语言:javascript
复制
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;
    }

});
EN

回答 1

Stack Overflow用户

发布于 2018-02-14 06:10:52

我认为问题在于您正在尝试创建EF上下文的多个对象。文件上说

ObjectContext类不是线程安全的。在多线程场景中,无法确保ObjectContext中数据对象的完整性。ObjectContext类不是线程安全的。 上下文不是线程安全的。只要同一实体类的实例不被多个上下文同时跟踪,仍然可以创建多线程应用程序。EF多线程

根据应用程序的不同,您可以使用ToList()实现数据,并根据需要对其进行筛选,或者尝试更改查询的逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48780191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档