私はDateTimeフィールドを持つテーブルとint型のフィールドを持っていると言うと、このようなクエリを実行できます。LinqToSqlのサブクエリは、親と同じ順序であることが保証されていますか?
var query = context.tblSomeTable.Where(s=>s.Name == "Hello World").OrderBy(s=>s.SignUpDate);
私は、結果を持つ2つのサブクエリを実行した場合、彼らはまだ、日付順に並んでい?:
var sub1 = query.Where(s=>s.Id = 5);
var sub2 = query.Where(s=>s.Id = 8);
私のガットはまだ順番に並んでいますが、元のクエリがまだ反復/実行されているかどうかは問題ですか?
これは、SQL Server Profilerを使用して非常に簡単にテストできます。 LINQクエリを作成するコードにブレークポイントを置き、プロファイラを見ながら各行を実行します。クエリがデータベースにヒットするタイミングを正確に知ることができます。これはクエリをデバッグするのにも役立ちます。なぜなら、クエリを表示してプロファイラから取得できるからです。 – Jagd
ドキュメントには、By By節が最後にプッシュバックされることが実際に書かれていますか? L2Sは通常、「合理的なことをしようとしている」という事実を考えれば、私はそれをすべきだと思うだろうが、もし言及されていなければ、それに依存せず、最後まであなたの「順序」を動かす... –
SQL文は、クエリが実際に使用されたとき(foreach文の場合や.ToList()コールなど)に1回だけ実行されます –