I have an IQueryable. I have not called OrderBy on it or otherwise done anything with it.

If I do:

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

Why is this always true? (It seems like it shouldn't be.) And, more importantly, how can I tell if an IQueryable already has been ordered? (i.e. is truly an IOrderedQueryable)

I would like to be able to do something like:

if (myQueryable is IOrderedQueryable<T>)
  myQueryable = myQueryable.ThenBy(...);
else
  myQueryable = myQueryable.OrderBy(...);
Edit
Report