获取EF中的下一条记录,其中记录未按ID排序

时间:2014-12-16 01:19:15

标签: linq entity-framework linq-to-entities entity-framework-6 entity-sql

我需要编写一个返回单个记录的查询,这条记录将是带有提供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)中的等价物是什么?

0 个答案:

没有答案