12

我有一个通用方法,我在其中使用 Linq-to-EntitiesIQueryable<T>并返回一个。IOrderedQuerable<T>

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

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

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

有任何想法吗?

4

1 回答 1

20
input.OrderBy(p => 0);

这样,您将按照最初的顺序获得这些项目。但是,这将花费额外的 CPU。

于 2013-01-25T15:07:52.967 回答