这是因为在使用 Entity Framework Core 时,同一个 DbContext 实例在执行一项操作时不能同时执行另一项操作。所以当你在执行一项操作时,需要等待它完成,才能进行下一项操作。
解决这个问题的方法有两种。
第一种方法是在每个操作之间创建一个新的 DbContext 实例,这样就可以避免上述错误。例如:
using (var dbContext = new ApplicationDbContext())
{
// 执行第一个操作
// ...
// 创建新的 DbContext 实例,避免在同一个实例上执行下一个操作
using (var newContext = new ApplicationDbContext())
{
// 执行第二个操作
// ...
}
}
第二种方法是等待第一个操作完成后再执行第二个操作。例如:
using (var dbContext = new ApplicationDbContext())
{
// 执行第一个操作
// ...
// 等待第一个操作完成
dbContext.SaveChanges();
// 执行第二个操作
// ...
}