選択されている特定のアイテムが最初であるかどうかを理解するクエリ式を作成するにはどうすればよいでしょうか。DBから10個のアイテムを選択しているとします。
var query = db.Table.Take(10).Select(t => IsFirst ? t.Value1 : t.Value2);
Selectにはインデックス付きのバリアントがありますが、LINQ-to-SQLではサポートされていません。それがサポートされていれば、私の問題は解決されるでしょう。他にトリックはありますか?
ROW_NUMBER()
たとえば、LINQ-to-SQLが使用するがアクセスを許可しないT-SQLで使用することもできます。
2つのクエリを実行して、最初の式などで最初の式を使用できることはわかってConcat
いますが、クエリは複数の場所で作成されており、これが必要な場所であるため、クエリの残りの部分を操作する必要はありません。selectステートメント自体だけです。最初の行で異なる動作をします。それが不可能な場合は、他のオプションを検討します。