数値である特定の ID が見つかるまで行を選択したいと思います。データが Id 順に並べられている場合、問題は非常に簡単に解決できます。
Id Name
-----------
1 Bob
2 Eve
3 Alice
4 Michael
5 Anne
6 Mike
ID 4 が見つかるまですべてのアイテムを取得するには、次の SQL ステートメントで十分です。
SELECT * FROM Users WHERE Id <= 4
データが名前順に並べられていて、ID 4 が見つかるまで項目を取得したい場合、適切な解決策を思いつきませんでした。
Id Name
-----------
3 Alice
5 Anne
1 Bob
2 Eve
4 Michael
6 Mike
定義するステートメントの出力は次のようになります。
Id Name
-----------
3 Alice
5 Anne
1 Bob
2 Eve
4 Michael
編集1:
次のステートメントでは、出力はほぼ必要なものですが、ID 4 のアイテムがありません。
queryable.OrderBy(o => o.Name).TakeWhile(o => o.Id != 4);
Id Name
-----------
3 Alice
5 Anne
1 Bob
2 Eve
ID4の商品も同梱可能でしょうか?
編集2:
今のところ、私はこのアプローチを採用しています:
queryable.OrderBy(o => o.Name).TakeWhile(o => o.Id != 4).Union(queryable.Where(o => o.Id == 4))
Id は一意であるため、UNION ステートメントに問題はありません。しかし、この声明が最も効果的なものであるかどうかはわかりません。