2011-07-18 4 views
1

私のobjectContextに変更が加えられているかどうかを知る必要があります(添付されたエンティティとデタッチされたエンティティを含む)。私のすべてのObjectSetのすべてのエンティティをループしてEntityStateをチェックすべきか、それとも短い方法がありますか?ObjectContextがEntity Framwworkのトラッキングを変更しました

+0

objectContextは切り離されたオブジェクトの変更を追跡できません –

答えて

1

Detachedエンティティはdetached =コンテキストはそれらについて知りませんし、変更を追跡することはできません。 ObjectSetsをループすることはできません。データベース全体がアプリケーションにロードされます。あなたは、コンテキストの使用によって追跡あなたのエンティティの状態を知りたい場合は、次の

var entries = context.ObjectStateManager.GetObjectStateEntries(~EntityState.Detached); 

これは、各エントリは、単一の追跡エンティティまたは独立した関連を表しObjectStateEntryのあなたのコレクションを取得します。

+0

〜は何を意味しますか?なぜEntityState.Detached? – Tzviya

+0

この場合、 '〜EntityState.Detached'は、' EntityState.Detached'を除くすべての状態を意味します。 –

+0

変更なしが含まれますか? – Tzviya

関連する問題