エンティティを更新した後、ナビゲーションプロパティが入力されないという問題の解決策を探しているときに、この質問に遭遇しました。データベースからエンティティを再読み込みしようとすると、代わりにローカルストアからエントリが取得され、遅延読み込みによってナビゲーションプロパティにデータが入力されませんでした。コンテキストを破棄して再作成する代わりに、これにより、プロキシが機能している状態で新しいデータを取得できることがわかりました。
_db.Entry(entity).State = EntityState.Detached;
その背後にあるロジックは、エンティティへの変更を追跡するように、更新によってエンティティがアタッチされたというものでした。これにより、ローカルストアに追加されます。その後、機能プロキシを使用してエンティティを取得しようとすると、データベースに移動して新しいプロキシ対応エンティティを返すのではなく、ローカルエンティティを取得することになります。上記のリロードオプションを試しました。これはデータベースからオブジェクトを更新しますが、遅延読み込みでプロキシされたオブジェクトを取得できません。やってみましたFind(id), Where(t => t.Id = id), First(t => t.Id = id)
。最後に、提供された使用可能な状態を確認し、「切り離された」状態があることを確認しました。ユーレカ!これが誰かを助けることを願っています。