.net – 撤消实体框架实体中的更改

这可能是一个琐碎的问题,但是:由于ADO.NET实体框架自动跟踪更改(生成的实体),因此保持原始值,如何回滚对实体对象所做的更改?

我有一个表单,允许用户在网格视图中编辑一组“客户”实体。

现在我有两个按钮“接受”和“恢复”:如果单击“接受”,我调用Context.SaveChanges()和更改的对象写回数据库。如果点击“Revert”,我想让所有对象得到它们的原始属性值。那将是什么代码?

谢谢

EF中没有还原或取消更改操作。每个实体在ObjectStateManager中都有ObjectStateEntry。状态条目包含原始值和实际值,因此您可以使用原始值覆盖当前值,但必须为每个实体手动执行。它不会尊重导航属性/关系的变化。

“恢复更改”的常见方法是放置上下文和重载实体。如果要避免重新加载,必须创建实体的克隆并在新对象上下文中修改这些克隆。如果用户取消更改,您仍将具有原始实体。

http://stackoverflow.com/questions/5466677/undo-changes-in-entity-framework-entities

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:.net – 撤消实体框架实体中的更改