【发布时间】:2021-12-13 16:57:23
【问题描述】:
我们有一个 Web API Core 应用程序,它在后端使用 EF Core 和 SQL Server。我正在尝试在 Web API 服务启动时更新其中一个数据库表(在 Startup.cs 配置方法中)
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, SomeDBContext dataContext, ILoggerFactory loggerFactory)
{
.......................
// Automatically perform database migration
dataContext.Database.Migrate();
PopulateSomeTable(dataContext);
}
private async void PopulateSomeTable(SomeDBContext context)
{
var someTables = context.SomeTables;
if (someTables != null && (await someTables .CountAsync()) == 0)
{
someTables .Add(new Entities.SomeTable
{
someProperty1= 20,
someProperty2 = "Something",
someProperty3 = DateTimeOffset.Now,
});
await context.SaveChangesAsync();
}
}
但是,当我尝试访问上下文时出现此错误
无法访问已处置的对象。此错误的常见原因是 处理从依赖注入解决的上下文和 然后稍后尝试在您的其他地方使用相同的上下文实例 应用。如果您在 上下文,或将上下文包装在 using 语句中。如果你是 使用依赖注入,你应该让依赖注入 容器负责处理上下文
我该如何解决?
提前谢谢你
【问题讨论】:
标签: c# dependency-injection entity-framework-core asp.net-core-webapi