我想在保存之前检测是否对特定实体集进行了更改。
我目前正在使用此方法,但如果在上下文中修改了任何实体,则返回true。
const EntityState ModifiedID = EntityState.Modified
| EntityState.Added
| EntityState.Deleted;
var objectStateEntries = Database.LabelTAB
.Context.ObjectStateManager
.GetObjectStateEntries(ModifiedID);
return objectStateEntries.Any();
有没有办法检测LabelTAB
实体中是否有某些未保存的条目,而不是整个Context
?
谢谢。
答案 0 :(得分:2)
试试这个:
var objectStateEntries = Database.LabelTAB
.Context
.ObjectStateManager
.GetObjectStateEntries(ModifiedID)
.Where(e => e.Entity is LabelTAB);
return objectStateEntries.Any();
答案 1 :(得分:0)
使用:
var states = new List<EntityState>() { EntityState.Modified,
EntityState.Added,
EntityState.Deleted};
var query = from t in Database.LabelTAB
where states.Contains(t.EntityState);
每个实体都有EntityState
属性。您可以只使用实体上的属性,而不是查询ObjectContext。