#c# #entity-framework
#c# #entity-framework
Вопрос:
Я хочу определить, были ли внесены изменения в определенный набор объектов перед сохранением.
В настоящее время я использую этот метод, но он возвращает true, если в контексте изменена какая-либо сущность.
const EntityState ModifiedID = EntityState.Modified
| EntityState.Added
| EntityState.Deleted;
var objectStateEntries = Database.LabelTAB
.Context.ObjectStateManager
.GetObjectStateEntries(ModifiedID);
return objectStateEntries.Any();
Есть ли какой-либо способ определить, есть ли какие-либо несохраненные записи только в LabelTAB
объекте, а не во всем Context
?
Спасибо.
Ответ №1:
Попробуйте это:
var objectStateEntries = Database.LabelTAB
.Context
.ObjectStateManager
.GetObjectStateEntries(ModifiedID)
.Where(e => e.Entity is LabelTAB);
return objectStateEntries.Any();
Ответ №2:
Используйте:
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 вы можете просто использовать свойство объекта.