My Entity Frameworkでサポートされているプロジェクトは、エンティティ全体を選択すると古いデータを返しますが、エンティティからフィールドのみを選択するとデータは最新です。
手順は次のとおりです。
EF / LINQを介したクエリ:
var e = context.myEntity.First(x=>x.ID==ID); string n = context.myEntity.Where(x=>x.ID==ID).Select(x=>x.Name).First();
SQLを介してDBの[名前]フィールドを直接更新します
次に、EF/LINQを介して再度クエリを実行します。
var e = context.myEntity.First(x=>x.ID==ID); string n = context.myEntity.Where(x=>x.ID==ID).Select(x=>x.Name).First();
e.Name
は以前の値ですが、n
最新です。
呼び出し間で同じコンテキストを再利用しています。
SQLプロファイラーを使用すると、データが古くなっている場合でも、EFからのSQLクエリが発生することを確認できます。
これを引き起こす原因は何ですか?