数据库
首页 > 数据库> > LINQ-to-SQL更改集中获取对象的原始副本

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