Я пытаюсь найти способ определить, какие изменения были внесены в контекст базы данных (DbContext). Примечание. Я использую Visual Studio 2012 с Entity Framework 5 в 64-разрядной коробке Windows.
Назад, когда я использовал ObjectContext вместо DbContext, я мог бы сделать что-то вроде:
public partial class MyObjectContext
{
public Boolean HasUnsavedChanges()
{
return (this.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted).Any());
}
}
Теперь, когда я использую DbContext, я попытался сделать это:
public partial class MyDbContext
{
public ObjectContext ObjectContext()
{
return (this as IObjectContextAdapter).ObjectContext;
}
public Boolean HasUnsavedChanges()
{
return (this.ObjectContext().ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted).Any());
}
}
Проблема, с которой я столкнулась, заключается в том, что метод "HasUnsavedChanges()" всегда возвращает "false", даже когда я знаю, что контекст был изменен. У кого-нибудь есть идеи относительно того, что я делаю неправильно?