最初にエンティティフレームワークコードを使用しているアプリケーションがあります。ID マップ パターンを実装する EF に問題があります。EF はいくつかのエンティティをメモリにキャッシュします。私がやりたいことは、新しいデスクをユーザーに追加することです。そのため、ニュースデスクを追加したユーザーでログインすると、アプリケーションを使用できるようになります。しかし、これはうまくいかないようです。localdb を手動で更新すると、ログインできます。
コンテキストを更新しようとしましたが、機能しません。これは私の add newsdesk メソッドのコード スニペットです。役に立つかどうかはわかりませんが、私はグローバルなコンテキストで作業しています。どんな助けにも感謝します。
var user = DatabaseContext.Users.Single(u => u.Id == userid);
var newsdesk = DatabaseContext.Newsdesks.Single(u => u.Id == newsdeskid);
user.Newsdesk = newsdesk;
DatabaseContext.SaveChanges();
DatabaseContext.Reload(user);
var objContext = ((IObjectContextAdapter)DatabaseContext).ObjectContext;
objContext.Refresh(RefreshMode.StoreWins, user);