エンティティフレームワークがアイデンティティマップパターンを実装しているので、EFはメモリ内のいくつかのエンティティをキャッシュします。エンティティフレームワーク4の内部キャッシュを無効にする方法
例を挙げておきます。
var context = new StudentContext();
var student = context.Students.Where(st => st.Id == 34).FirstOrDefault();
// any way of changing student in DB
var anotherContext = new StudentContext();
var anotherStudent = anotherContext.Students.Where(st => st.Id == 34).FirstOrDefault();
anotherStudent.Name = "John Smith";
anotherContext.SaveChanges();
student = context.Students.Where(st => st.Id == 34).FirstOrDefault();
// student.Name contains old value
最初のコンテキストのキャッシュを無効にして、コンテキストを再作成することなく、新しいstudent
エンティティを取得する方法はありますか?
ありがとうございました。