尝试根据IQueryable
寻找搜索结果集时,我收到错误消息,指出我必须在使用OrderBy
之前致电Skip
。
在大多数情况下,这很好,因为我可以通过Id订购结果。但是,我有一个边缘情况,我通过我的实体类调用函数导入。此函数导入在SQL中使用FREETEXT
搜索并返回排名结果集。
我需要维护 - 并且能够翻阅 - 结果集,但是如果我针对结果集中的任何列调用OrderBy
,我将不再拥有一组排名搜索结果。
所以,听起来很傻,有没有办法让愚弄 LINQ认为我已经调用了OrderBy
只维持原始顺序的操作?
答案 0 :(得分:1)
您可以使用:
var page = searchResultSet.OrderBy(x => 0).Skip(40).Take(20);
这将维持结果集的原始顺序,因为所有记录都具有相同的常量值0,因此排序它们在比较它们的相等值后不会改变它们的顺序。