sql - NHibernate QueryOver Subjective Where? -


तो SQL में मैं इस तरह एक प्रश्न लिख सकता हूँ:

  SELECT A, B, सी से MyTABLE WHERE (@ एक्स शून्य या ए = 0 X है) और (@ वाई शून्य या बी = @ या) और (@Z नल या सी = @ जेड है)  

क्रम में एक एकल क्वेरी बनाते हैं जो सभी प्रविष्टियों को रिटर्न देता है यदि कोई फ़िल्टरिंग पैरामीटर निर्दिष्ट नहीं हैं, या कोई सबसेट अगर उनमें से कोई भी निर्दिष्ट है लेकिन मैं यह कैसे कर सकता हूँ Nhibernate QueryOver का उपयोग करते हुए? मैं पूरी तरह से पूर्ण रूप से यह नहीं जानता हूं कि QueryOvery के साथ या कैसे करना है ...

क्रम में विषयबद्ध क्वेरी के लिए (पैरामीटर के आधार पर), स्वीकृत विधि उस खंड को बनाने के लिए होगी, जैसे कि टुकड़ों में:

  var qry = session.QueryOver & lt; obj & gt; (); यदि (! स्ट्रिंग.आईएसएनएलएलएक्लाइट (ए)) {qry.Where (x = & gt; x.a == ए); } यदि (! स्ट्रिंग.आईएसएनएलएलएक्लाइट (बी)) {qry.Where (x = & gt; x.b == बी); } यदि (! String.IsNullOrEmpty (C)) {qry.Where (x = & gt; x.c == सी); } सूची & lt; obj & gt; डेटा = qry.List & lt; obj & gt; ()। ToList ();  

ताकि अंतिम पैरामीटर पैरामीटर के सेट के लिए चलाने के लिए सटीक क्वेरी हो, बल्कि मूल पोस्ट में निर्दिष्ट सामान्यीकृत SQL क्वेरी।


Comments