Entity Framework 5 -В DbContext есть изменения?

Я пытаюсь найти способ определить любые изменения, внесенные в контекст базы данных (DbContext ). Примечание :Я использую Visual Studio 2012 с Entity Framework 5 на Windows 7, 64 -bit box.

Раньше, когда я использовал 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», даже если я точно знаю, что контекст был изменен. У кого-нибудь есть идеи относительно того, что я делаю неправильно?

32
задан HydroPowerDeveloper 17 August 2012 в 20:21
поделиться