LINQ-to-SQL更改集中获取对象的原始副本
作者:互联网
使用LINQ-to-SQL时,可以通过调用DataContext.GetChangeSet()获得一组将被更新,插入或删除的对象数组.如果存在冲突,则DataContext.ChangeConflicts属性将为您提供对原始对象和更改对象的引用.如果没有冲突,是否可以访问原始对象和更改的对象?
这需要对未实现INotifyPropertyChanging / INotifyPropertyChanged的实体起作用.
解决方法:
var db = new DataContext();
db.GetChangeSet().Updates.ForEach(o => {
var currentObject = o;
var originalObject = db.GetTable(o.GetType()).GetOriginalEntityState(o);
var changedProperties = db.GetTable(o.GetType()).GetModifiedMembers(o);
});
标签:linq-to-sql,c 来源: https://codeday.me/bug/20191201/2081229.html