2010-08-27 12 views
7

¿Cómo puedo lograr esta consulta con Nhibernate LINQ?NHibernate LINQ - cómo crear un comunicado, donde no es nulo con

var l = session.CreateQuery("from Auswahl a where a.Returnkey is not null").List<Auswahl>(); 

intenté esto pero siempre devuelve una lista vacía.

var l = session.Linq<Auswahl>() 
        .Where(item => !String.IsNullOrEmpty(item.Returnkey)) 
        .Select(item => item) 
        .ToList(); 

Respuesta

7

Ha intentado:

var l = session.Linq<Auswahl>() 
        .Where(item => item.Returnkey != null && item.Returnkey != "") 
        .Select(item => item) 
        .ToList(); 

no estoy seguro de que el uso de String.IsNullOrEmpty iba a funcionar, también se comprueba si hay dos condiciones - si es NULL y si es una cadena vacía en blanco, cómo ¿Eso sería traducido a SQL? Podría valer la pena echar un vistazo a SQL para ver la consulta SQL en bruto que genera.

+0

gracias, tienen razón. pero no se olvide de escribir item.Returnkey! = "" de lo contrario no reciben nada de Oracle. SQL producido ahora se ve así: SELECT this_.ID como ID1_0_, this_.Programm como Programm1_0_, this_.Variante como Variante1_0_, this_.Returnkey como Returnkey1_0_, this_.Beschreibung como Beschrei5_1_0_ DE AUSWAHL this_ DONDE (this_.Returnkey no es nulo y no (this_.Returnkey = ''/*: P0 * /)) hay un espacio en blanco entre! '' :) – blindmeis

+0

es valió la pena recordar que, para Oracle, nula y la cadena vacía son lo mismo. –