将 IQueryable 转换为 IOrderedQueryable

本文关键字:IOrderedQueryable 转换 IQueryable | 更新日期: 2023-09-27 17:56:06

我有一个通用方法,我采用IQueryable<T>并使用Linq-to-Entities返回IOrderedQuerable<T>

一个简单的input.OrderBy(p => p.something)不起作用,因为我不知道T的任何属性(而且我不能将其限制在接口上)。

将结果转换为(IOrderedQuerable<T>)似乎有效,直到您尝试将其与.Skip().Take()一起使用,此时您会收到运行时错误。

我想理论上我可以使用反射,看看我是否找到一个int或其他东西,并构建一个表达式用作排序,但这似乎很脏。

有什么想法吗?

将 IQueryable 转换为 IOrderedQueryable

input.OrderBy(p => 0);

这样,您的项目将按照最初相同的顺序排列。但是,这将花费额外的 CPU。

相关文章:
  • 没有找到相关文章