将 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
或其他东西,并构建一个表达式用作排序,但这似乎很脏。
有什么想法吗?
input.OrderBy(p => 0);
这样,您的项目将按照最初相同的顺序排列。但是,这将花费额外的 CPU。