我有一个可液化的。我没有打电话给Orderby,也没有用它做任何事情。
如果我这样做:
// for some reason, isItOrdered is always true
var isItOrdered = myQueryable is IOrderedQueryable<T>
为什么总是这样?(看起来好像不应该)。更重要的是,我如何判断一个已经被订购的商品是否已经被订购了?(也就是说,它确实是一个iorderedqueryable)
我希望能够做一些类似的事情:
if (myQueryable is IOrderedQueryable<T>)
myQueryable = myQueryable.ThenBy(...);
else
myQueryable = myQueryable.OrderBy(...);
最佳答案
你还没有展示什么在创建你的可查询文件,但也许它是以某种方式自然排序的?
你得到的是检查它是否真的是一个IOrderedQueryable<T>
-我怀疑这只是你的查询提供者总是提供一个有序的查询表,即使顺序不明显。
编辑:好吧,你还可以试试别的:
if (typeof(IOrderedQueryable<T>).IsAssignableFrom(myQueryable.Expression.Type))
…或者通常,打印出
myQueryable.Expression.Type
并查看其外观。