Я хочу смочь сказать, существуют ли какие-либо несохраненные данные в контексте платформы объекта. Я выяснил, как использовать ObjectStateManager для проверки состояний существующих объектов, но существует две проблемы, которые я имею с этим.
Я не мог найти ответ на это в моих поисках MSDN, таким образом, я надеялся, что кто-то здесь сможет к подсказке меня в.
Заранее спасибо.
var addedStateEntries = Context
.ObjectStateManager
.GetObjectStateEntries(EntityState.Added);
В этой статье точно описано, что необходимо для отслеживания изменений в Entity Framework:
Разрешение удостоверений, управление состоянием и Отслеживание изменений (Entity Framework) - MSDN
Простой способ получить один многократно используемый метод / свойство. Вы можете добавить новый метод в свой ObjectContext, создав частичный класс и добавив следующее свойство:
public partial class MyEntityContext
{
public bool IsContextDirty
{
get
{
var items = ObjectStateManager.GetObjectStateEntries(EntityState.Added);
if(items.Any())
return true;
items = ObjectStateManager.GetObjectStateEntries(EntityState.Deleted);
if (items.Any())
return true;
items = ObjectStateManager.GetObjectStateEntries(EntityState.Modified);
if(items.Any())
return true;
return false;
}
}
}
В зависимости от того, что вы ищете, вы можете предоставить другие свойства для знать, есть ли просто удаления или модификации. Этот метод можно упростить, но я хотел, чтобы было понятно, что вам нужно делать.