単一のレコードを返すクエリを作成する必要があります。このレコードは、指定された 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) で同等のものは何でしょうか?