我正在使用 EF 并且有一个上下文,我通过上下文上的 ExecuteStoreCommand 函数使用简单的 SQL 调用删除了表中的一行(出于其他原因,我必须这样做)。它工作正常,但上下文不知道发生了什么。
当我尝试提交一些更改时使用相同的上下文时,我稍后会遇到问题,因为提交没有给出预期的受影响行数。
我的问题是,用我所做的更改(已删除的行)更新上下文的最佳方法是什么。
我已经尝试获取已删除的对象并在上下文刷新函数中使用它,但它并没有真正起作用,可能是因为它(正确地)在尝试获取已删除的对象时获得了一个空引用。
_ctx.Refresh(RefreshMode.StoreWins, _ctx.Employees.FirstOrDefault(s => s.EmployeeId == employeeId));
此外, usingObjectStateManager.GetObjectStateEntries
对我也不起作用,因为它不知道哪些对象已被删除。
我不想:
- 重新创建上下文。
- 刷新比我需要的更多。
- 与延迟加载混为一谈。
我只想在删除后再次更新上下文。