के बजाय परिणाम और प्रश्न कुछ स्पष्ट हो सकते हैं लेकिन मैं कुछ घंटे के लिए इसके खिलाफ अपने सिर को टक्कर लगी हूं और यह पता नहीं लगा सकता कि मैं कहां गलत हूं।एनएचबेर्नेट विभाजन के परिणामस्वरूप या
मैं एनएचबीरनेट क्वेरी में जोड़ने या मानदंडों का परीक्षण करने के लिए कोड का एक छोटा टुकड़ा चलाने की कोशिश कर रहा हूं।
using (ISession session = NHibernateHelper.OpenSession())
{
ICriteria criteria = session.CreateCriteria<TestObject>();
int[] ids = {1, 2, 3};
foreach (int id in ids)
{
ICriterion criterion = Restrictions.Eq("Id", id);
criteria.Add(Restrictions.Disjunction().Add(criterion));
}
IList<TestObject> items = criteria.List<TestObject>();
return items;
}
यह सिर्फ कुछ सरल है कि मैं आईडी 1-3 के साथ सभी परीक्षण की वस्तुओं वापस जाने के लिए उम्मीद करेंगे: यह कोड मैं है। लेकिन, जब मैं कोड चला रहा हूं, तो जेनरेट की गई क्वेरी आईडी = 1 और आईडी = 2 और आईडी = 3 के साथ ऑब्जेक्ट ढूंढना है। जो, आश्चर्यजनक रूप से, कुछ भी वापस नहीं करता है।
मैपिंग सही तरीके से स्थापित है (मैं सभी ऑब्जेक्ट्स को जोड़/संपादित/हटा/सूचीबद्ध कर सकता हूं) और इन आईडी के साथ वहां ऑब्जेक्ट्स हैं।
क्या मैं कुछ गलत कर रहा हूं? मैंने जो ऑनलाइन देखा है, उसका उपयोग करने के किसी भी नमूने इस तरह इसका उपयोग करते हैं। मुझे नहीं लगता कि यह क्यों उपयोग करता रहता है और।
धन्यवाद।
जादू, कि एक का इलाज काम किया। जब मैं आपके कोड को देखता हूं तो समझ में आता है - मैंने कभी सोचा नहीं कि यह व्यक्तिगत ओआरएस के साथ "और" होगा। आपके कोड में एकमात्र मामूली परिवर्तन इस प्रकार का संयोजन बना रहा है: जंक्शन विघटन = प्रतिबंध। संयोजन(); (आईक्रिटिशन में 'एड' नहीं है)। धन्यवाद! –