问题原因是因为在更新实体对象时,该对象已经被从上下文(DbContext)中分离,因此更新操作被拦截。为了解决这个问题,可以在更新对象之前重新连接到上下文(DbContext)。示例如下:
// 假设entity是要更新的实体 using(var dbContext = new MyDbContext()) { // 把entity重新连接到DbContext中 dbContext.Entry(entity).State = EntityState.Modified;
// 更新实体对象
dbContext.SaveChanges();
}
在上面的示例中,我们把要更新的实体对象重新连接到了DbContext中,然后设置实体对象的状态为Modified,这样就可以成功更新实体对象了。