我有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()以及它与已处置对象的关系。