Cercar en aquest blog

7/1/13

EF OrderBy amb nuls al final

Segurament molts ens hem trobat en haver d' ordenar una consulta per una columna nulable volen els registres amb valor nul en la columna al final. La solució és fàcil quan la saps, però que si la desconeixes, et pot portar un petit maldecap.
Si treballem amb Entity Framework, sabem que les propietats nulables d' una entitat, porten associades una propietat extesa "HasValue". Aquesta propietat ens diu si té valor o no. Doncs bé, si nosaltres ordenen primer per aquesta propietat, tindrem "true" si té valor, i "false" si no té valor. O el que es el mateix, 1 i 0. Aixî, si ordenem de forma descendent, primer tindrem els 1 i després els 0. O el que es el mateix, els que tenen valor i els que no. I finalment ordenem per la columna en qüestió.

Ex: var q=contexte.Articles.OrderByDescending(o=>o.DataBaixa.HasValue)
.ThenBy(o=>o.DataBaixa.Value);


I això es tot.