Ordenar una consulta aleatoriamente en Linq

Migrando mi pequeño proyecto personal a asp.net mvc me he encontrado que cosas que tenía en MySql me ha apetecido no hacerlas en procedimientos almacenados y pasarlas al código propiamente dicho, puesto que son procesos que no se ejecutan muy a menudo y además poseen un alto valor de aprendizaje.
Uno de los problemas con los que me he encontrado es que tenía algunas consultas que tenían que dar datos ordenados aleatoriamente, esto en MySql era tan sencillo como realizar un “order by Rand()” y te quedabas tan pancho. Pues bien, la solución para Linq que he encontrado la verdad es que no es nada compleja, se trata de realizar un orderby llamando a la clase GUID con lo que la estructura de la consulta sería la siguiente:

var results = from ... in ... where ... orderby Guid.NewGuid() select ...;

Esto resulta muy practico para casos como el mío en que necesitaba que de un conjunto me devolviera un número de resultados aleatoriamente.

Leave a Reply

Your email address will not be published. Required fields are marked *