Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储库错误-在创建模型时无法使用上下文_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

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

C# 存储库错误-在创建模型时无法使用上下文,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,尝试从注册表检索数据时出现以下异常: 中发生“System.InvalidOperationException”类型的异常 OHR.Repository.dll,但未在用户代码中处理 其他信息:模型运行时无法使用上下文 正在创建。如果使用上下文,则可能引发此异常 在OnModelCreating方法中,或者如果使用相同的上下文实例 由多个线程并发访问。请注意,实例成员 DbContext的类和相关类不能保证是线程安全的 此错误发生在我在名为MovieExists的方法中运行的第一个数据库查询上:

尝试从注册表检索数据时出现以下异常:

中发生“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;
    }
}
我的上下文.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; }

}
public类ApplicationDbContext:IdentityDbContext
{
公共应用程序上下文()
:base(“DefaultConnection”,throwifvv1schema:false)
{
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
}
公共虚拟数据库集电影{get;set;}
}
我使用的是EF6,虽然我有异步EF任务,但第一个任务没有使用任何异步调用,所以我不认为我试图在多个线程上使用上下文

我假设我没有正确地实例化上下文,但看不到如何解决问题


谢谢

修复,问题是我将ApplicationDbContext\u上下文设置为只读。删除readonly修复了此问题。

如果您只阅读(即:_context.Movies.Any),则不应出现此问题。通常,对于repo模式,readonly DbContext是从uow声明的,您可以将uow注入repo,以使用内部引用持久化数据。