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 to entity,那么 L2E(或 EntitySQL)中的等价物是什么?

4

0 回答 0