¿Hay alguna manera de saber si se ha pedido un IQueryable<T>
(usando OrderBy
o OrderbyDescending
)?Determine si se ha pedido o no un <T> de IQ
Entonces sé si llamar OrderBy
o ThenBy
en la colección.
IQueryable<Contact> contacts = Database.GetContacts();
me trataron contacts is IOrderedQueryable<Contact>
, pero siempre es cierto.
Editar: Acabo de cambiar mi ejemplo, el anterior no mostraba realmente mi punto. Supongamos que GetContacts
usa Entity Framework y simplemente devuelve todos los registros de una tabla.
Más tarde, aplico varias funciones al contacts
, no tengo conocimiento de lo que hacen esas funciones. Pueden clasificar o filtrar el IQueryable<Contact>
.
Cuando recupere la colección, debo ordenarla una vez más. Para hacerlo, necesito saber si necesito llamar al OrderBy
, o al ThenBy
. Por lo tanto, no reorganizo toda la colección si ya se ha ordenado.
Si se aloja en el ámbito de 'IQueryable', es lo que tiene que preocuparse? Lo que quiero decir es que un '.OrderBy' adicional podría dar como resultado que no haya ningún cambio en lo que realmente está ejecutando el proveedor en la fuente de datos subyacente. – AakashM
@AakashM, si llamo a 'OrderBy' en un' IQueryable' ya ordenado, pierdo ese tipo. Solo quiero agregarle –
En realidad estaba pensando que estabas preocupado por perf. ¿Qué tal si siempre usas 'ThenBy'? – AakashM