2010-08-27 4 views
7

मैं इस क्वेरी को निबर्ननेट लिंक के साथ कैसे प्राप्त कर सकता हूं?NHibernate Linq - जहां कोई कथन नहीं बनाया गया है, न कि

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

मैंने कोशिश की लेकिन यह हमेशा एक खाली सूची देता है।

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

उत्तर

7

आप की कोशिश की है:

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

मुझे यकीन है कि का उपयोग कर String.IsNullOrEmpty काम करेगा नहीं हूँ भी यह दो स्थितियों के लिए जाँच करता है - अगर यह शून्य है और यह एक खाली खाली स्ट्रिंग, का तरीका बताया गया है, तो क्या एसक्यूएल में अनुवाद किया जाएगा? कच्चे एसक्यूएल क्वेरी को उत्पन्न करने के लिए एसक्यूएल प्रोफाइलर को देखने के लायक हो सकता है।

+0

धन्यवाद, आप सही हैं। लेकिन आइटम लिखना न भूलें। रीटर्नकी! = "" अन्यथा आपको ऑरैकल से कुछ भी नहीं मिलता है। चयन this_.ID ID1_0_, this_.Programm Programm1_0_ के रूप में, this_.Variante Variante1_0_ के रूप में, Returnkey1_0_ रूप this_.Returnkey, this_.Beschreibung Beschrei5_1_0_ रूप AUSWAHL से के रूप में this_ : Sql अब इस तरह दिखता है उत्पादन कहां (this_.Returnkey शून्य नहीं है और नहीं (this_.Returnkey = ''/*: p0 * /)) ! ':) – blindmeis

+0

के बीच एक खाली है यह याद है कि, ओरेकल, शून्य और खाली स्ट्रिंग एक ही हैं। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^