LinqToSqlクエリの実行タイミングについて質問したいと思います。私の理解から
このMSDN blogを参照してください、1のIQueryableのプロパティがアクセスされたときにLinqToSqlクエリが唯一私がやった、しかし(のIQueryable/IEnumeration型を返すされていない)
2のIQueryableの機能がLinqToSqlクエリの実行タイミング
呼び出されて実行されるようですそのような実験:
var ents = from ent in dal.ents
select ent;
string s1 = ents.first().Value1; // I got 1 here
Console.ReadLine(); // When the system is waiting for my input. I change the same record manually in DB, I change Value2 of ent from 2 to 3 here.
string s2 = ents.first().Value2 // I got 2 here.
私の質問は:なぜ私はまだS2のための "2" を取得しています!!!!!!!!!!!!!!! ???????? ??????
私の理解から、ents.first().Value2
はDBに再度接続し、新しいValue2を取得する必要があります。なぜ私はまだ古い価値を得ているのですか?
私の質問に興味のある方のために先進的に感謝します。
同じデータコンテキストを使用していますか?参照[ここ](https://blogs.msdn.microsoft.com/dinesh.kulkarni/2008/07/02/linq-to-sql-tips-9-understanding-datacontexts-internal-caching/) –
コンパイルできません。コード。 [短く自己完結した正しい例](http://sscce.org/)を書いてください。 – Aron