データベース コンテキスト (DbContext) に変更が加えられたかどうかを判断する方法を見つけようとしています。注: Windows 7 の 64 ビット ボックスで、Visual Studio 2012 と Entity Framework 5 を使用しています。
DbContext の代わりに ObjectContext を使用していたときは、次のようなことができました。
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」を返すことです。私が間違っていることについて誰かが何か考えを持っていますか?