实体框架:DBContext线程错误

时间:2016-01-07 22:04:16

标签: c# multithreading entity-framework dbcontext

当我声明我在所有方法中使用的上下文CommonService时,我有一个类_epdaDb

public class CommonService
{
    EPDA.WebApi.Context.EPDAContext.ApplicationDbContext _epdaDb = new Context.EPDAContext.ApplicationDbContext();

和方法:

public ResultMessage DeleteCountry(int id_country)
{
    ResultMessage result = new ResultMessage();

    var countryToRemove = _epdaDb.Countrys.Include("Towns").FirstOrDefault(c => c.Id_Country == id_country);           
    return result;
}

当我尝试测试DeleteCountry方法时,我遇到了错误:

  

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

经过大量的研究,我没有找到一个很好的解决方案,我发现我应该在每种方法中实例化我的上下文。

有人能帮帮我吗?

0 个答案:

没有答案
相关问题