Nhibernate - How do I get ordered distinct results with QueryOver? -
सार्वजनिक वर्ग सिटी {आभासी सार्वजनिक लंबे आईडी {get; सेट; } आभासी सार्वजनिक स्ट्रिंग नाम {get; सेट; }}
शहर तालिका में डुप्लिकेट नाम हैं और मैं डुप्लिकेट को निकालना चाहता हूं। मैं यह भी चाहता हूं कि परिणाम आईडी के अनुसार क्रमबद्ध हो।
पहले मैंने निम्नलिखित प्रश्न के बारे में सोचा।
आईडी से शहर के आदेश से अलग नाम का चयन करें;
लेकिन यदि यह चयन 'DISTINCT' निर्दिष्ट है तो 'ऑर्डर बाय मदों के साथ चयन को सूची में दिखना चाहिए।' अपवाद। देखने के बाद मुझे लगता है कि मुझे करना चाहिए:
नाम समूह द्वारा नाम के नाम से नाम का चयन न्यूनतम (आईडी)
तो मेरा सवाल है कि मैं कैसे कर सकता हूं प्रश्नकर्ता के साथ यह प्रश्न?
यह आईसीआरटीरिया में संभव है:
Var list = session.CreateCriteria & lt; City & gt; () .SetProjection (प्रोजेक्शन। समूह ("नाम")) .ऑडऑर्डर (ऑर्डर। एएससी (प्रोजेक्शन.मिन ("आईडी"))। लिस्ट & lt; स्ट्रिंग & gt; ();
लेकिन यह वर्तमान में क्वेरी में संभव नहीं है, क्योंकि। ओडरबी (आईपीओजेक्शन) अधिभार गुम है। एक बार लापता अधिभार जोड़ा गया है, तो ऐसा कुछ दिखना चाहिए:
var list = s.QueryOver & lt; सिटी & gt; ()। चयन करें (प्रोजेक्शन। समूह & lt; City & gt; (p = & gt; p। नाम))। ओर्डर बाय (प्रोजेक्शंस.मिन & lt; सिटी & gt; (सी = & gt; सी.आई.डी.))। एसीसी। लिस्ट & lt; स्ट्रिंग & gt; ();
ध्यान दें कि प्रोजेक्शन्स ओवरलोड केवल अभी मौजूद हैं, इसलिए आप आईसीआरटीरिया में निम्नलिखित (typesafe) क्वेरी लिख सकते हैं:
var list = session.CreateCriteria & lt ; सिटी & gt; () .SetProjection (प्रोजेक्शन। समूह & lt; City & gt; (c = & gt; c.Name))। ऑडरऑर्डर (ऑर्डर। एएससी (प्रोजेक्शन.मिन & lt; सिटी & gt; (सी = & gt; सी। आईडी))। लिस्ट एंड लेफ्टिनेंट ; स्ट्रिंग & gt; ();
Comments
Post a Comment