1

単一のレコードを返すクエリを作成する必要があります。このレコードは、指定された ID を持つレコードの次のレコードになります。

var x = GetNextRecord(int recordId);

問題は、データが ID 順ではなく、他の基準で並べられていることです。クエリの例:

SELECT * FROM SomeTable
WHERE conditions
ORDER BY column1, column2, column3

たとえば、このクエリは 25 レコードを返します。この結果セットで、ID=42 のレコードが 7 番目のレコードであると仮定します。つまり、8 番目のレコードを返す必要があります。

同等のLinqは次のようになります

list.OrderBy(x => x.a)
    .ThenBy(x => x.b)
    .ThenBy(x=> x.c)
    .SkipWhile(x => x.Id != id) // we skip records until we arrive to the record with given Id
    .Take(2) // we take the next two records (current and the next one)
    .LastOrDefault() // and finally we take the last one, which is our next record;

ただし、このクエリはエンティティへの linq では機能しないため、L2E (または EntitySQL) で同等のものは何でしょうか?

4

0 に答える 0