Как я могу определить, является ли IQueryable IOrderedQueryable?

У меня есть IQueryable. Я не звонил в OrderBy и не делал с ним ничего другого.

Если я звоню:

// for some reason, isItOrdered is always true
var isItOrdered = myQueryable is IOrderedQueryable<T>

Почему это всегда так? (Кажется, что этого не должно быть.) И, что более важно, как я могу узнать, был ли уже заказан IQueryable? (т.е. действительно IOrderedQueryable)

Я хотел бы иметь возможность делать что-то вроде:

if (myQueryable is IOrderedQueryable<T>)
  myQueryable = myQueryable.ThenBy(...);
else
  myQueryable = myQueryable.OrderBy(...);
12
задан Pedro 21 February 2011 в 21:22
поделиться