我可以"撤消"LINQ to SQL更新吗?

Sis*_*utl 9 linq-to-entities linq-to-sql

在LINQ-to-SQL中,如果我更新上下文中的对象但没有调用SubmitChanges,是否有办法"撤消"或放弃该更新,以便在我最终调用SubmitChanges时不会提交更改?例如,如果我更新了几个对象,然后决定在提交之前放弃对其中一个的更改.

第2部分:实体框架的相同问题,v3.5

Jus*_*ner 3

LINQ to SQL 和实体框架都将使用相同的调用(假设您仍然具有活动的上下文):

_dbContext.Refresh(RefreshMode.OverwriteCurrentValues, yourObj);
Run Code Online (Sandbox Code Playgroud)

更合适的方法是将上下文视为工作单元,在这种情况下,刷新对象时将不再有活动上下文。您只需处理当前正在使用的对象并从新的上下文中获取新的副本即可。