如何解决错误-注入DbContext

时间:2019-04-08 06:57:43

标签: c# asp.net-core dependency-injection ef-core-2.1

我有ASP.Net Core 2.1应用程序并使用EF Core 2.1作为DAL

这是我DAL服务方法的外观。

public async Task<bool> UpdateChannels(IEnumerable<Channels> subscriptions)
{
    try
    {
        //here Context(MyReosiptory =DbContext) no issue
        var zoneChannels = await Context.Channnels.Where(x => x.isActive == true).ToListAsync();
        await Context.Channels.AddRangeAsync(subscriptions);
        //but at this line it throws the error.
        await Context.SaveChangesAsync();
        return true;
    }   
    catch (Exception ex)
    {
        throw new Exception(ex.Message ?? ex.InnerException.Message);
    }
}

但是,如果我将另一个Db操作(添加)移动到单独的方法中,它将运行。

但是我在同一方法中还有一个Db操作,并且无法将每个与Db相关的操作移至单独的方法。

services.AddScoped<IMyRepository, MyRepository>();

通过构造函数注入依赖项。

检查了以下链接。

Cannot access a disposed object in ASP.NET Core when injecting DbContext

但是,无论Seed()即将出现,还是我不明白为什么我应该拥有Seed()以及它与已处置对象的关系。

0 个答案:

没有答案