存储库错误 - 创建模型时无法使用上下文

时间:2014-08-16 04:21:52

标签: c# asp.net-mvc entity-framework

尝试从我的注册表中检索数据时,我收到以下异常:

  

类型' System.InvalidOperationException'的例外情况发生在   OHR.Repository.dll但未在用户代码中处理

     

附加信息:模型时不能使用上下文   被创造。如果使用上下文,则可能抛出此异常   在OnModelCreating方法内部或者相同的上下文实例   由多个线程同时访问。请注意实例成员   DbContext和相关类不保证是线程安全的。

我在名为MovieExists的方法中运行的第一个数据库查询发生此错误:

MovieRepository.cs:

private readonly ApplicationDbContext _context;

public MovieRepository(ApplicationDbContext context)
{
    this._context = context;
}

public bool MovieExists(string MovieUrl)
{

    try
    {
        bool result;
        using (_context)
        {
            // The next line causes the exception
            result = _context.Movies.Any(p => p.Url == MovieUrl);
        }
        return result;
    }
    catch (Exception e)
    {
        throw;
    }
}

我的context.cs

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }

    public virtual DbSet<Movie> Movies { get; set; }

}

我使用EF6,虽然我有异步EF任务,但第一个没有使用任何异步调用,所以我不认为我试图在多个线程上使用上下文

我认为我没有正确地实例化上下文,但却看不出如何解决问题。

由于

1 个答案:

答案 0 :(得分:1)

修正了问题是我只读取了ApplicationDbContext _context。删除readonly修复了问题。