我在保存实体时实现了OnSaveChanges()。
除了找出已更改的实体的所有属性之外,如何查找已更改的实体中集合的所有属性?
EG 客户拥有房产
public List<Address>AddressList {get;set;}
现在,如果其中一个地址改变了我如何检测它?
我使用以下方法检测所有ObjectStateEntry修改过的
IEnumerable<ObjectStateEntry> changes =
stateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted);
现在作为一个说法,除了对实体的更改之外,我需要找到实体可能拥有的集合的所有更改。
你是怎么做到的?
答案 0 :(得分:2)
在调用SaveChanges()之前,您需要调用ObjectContext.DetectChanges()。如果不这样做,则在调用SavingChanges方法时,集合中的项目将不会包含在GetObjectStateEntries中。