CASE

2011-07-08 10 views
5

का उपयोग करके NHibernate आदेश I nhibernate hql का उपयोग करके क्रमबद्ध करने पर एक बड़ी समस्या में चला गया है। मेरे पास एक टेबल लाइसेंस है जिसमें एक संपत्ति USER (एक USER क्लास के अनुरूप) है जो इसे किसी अन्य तालिका USERPROFILE से लिंक करती है। USERPROFILE तालिका में एक उपयोगकर्ता उपयोगकर्ता नाम है जो nvarchar (USER क्लास में स्ट्रिंग) है। LICENSE की यह USER संपत्ति LICENSE असाइन की गई है या नहीं, उसके आधार पर शून्य हो सकती है।CASE

मुझे उपयोगकर्ता संपत्ति पर क्रमबद्ध लाइसेंस की एक फ़िल्टर सूची प्राप्त करनी है। मैं नल उपयोगकर्ताओं के साथ सभी लाइसेंस सूची के निचले हिस्से में होना चाहता हूं और अन्य सभी लाइसेंस उनके USER की USERNAME प्रॉपर्टी पर क्रमबद्ध रूप से क्रमबद्ध हैं। मैंने इसके लिए निम्नलिखित क्वेरी का उपयोग किया है:

from License license where <various filters> order by CASE WHEN User IS NULL THEN '0' ELSE User.UserName END" 

मैं इस प्रश्न से बाहर निकलता हूं केवल निर्दिष्ट लाइसेंस की सूची है। शून्य उपयोगकर्ता के साथ सभी लाइसेंस वापस नहीं आये हैं। क्या कोई मेरी मदद कर सकता है।

साथ ही, जब मैं "केस द्वारा ऑर्डर करता हूं, जब उपयोगकर्ता पूर्ण होता है तो '0' ELSE उपयोगकर्ता। उपयोगकर्ता नाम END" का उपयोग करता है, तो केवल उन नतीजों के साथ नतीजे आते हैं, लेकिन जब मैं "उपयोगकर्ता द्वारा आदेश के अनुसार आदेश" का उपयोग करता हूं नल फिर '0' ELSE उपयोगकर्ता। उपयोगकर्ता प्रोफाइल IND "या बस" उपयोगकर्ता द्वारा ऑर्डर "सभी उपयोगकर्ता आते हैं लेकिन उनका सॉर्टिंग ऑर्डर UserProfileId पर आधारित है और उपयोगकर्ता नाम नहीं है (क्योंकि UserProfileId विदेशी कुंजी है)। मैंने निबर्ननेट के नवीनतम संस्करणों का उपयोग किया है लेकिन बिना किसी सफलता के।

अगर वहाँ भी किसी भी तरह से मैं क्या करना चाहते करने के लिए मौजूद है मैं सोच रहा हूँ ...

+0

स्वरूपण कि stackoverflow का उपयोग करता है -http बारे में पढ़ने पर विचार का उपयोग करके शामिल: //stackoverflow.com/editing-help - यह आपकी पोस्ट एक बहुत अधिक पठनीय बनाता है , और जब लोग आसानी से आपकी पोस्ट –

उत्तर

0

NHibernate के नवीनतम संस्करण को और fluentnhibernate के पिछले संस्करण (यदि आप इसे उपयोग कर रहे हैं) डाउनलोड करने की कोशिश तो का उपयोग निम्न क्वेरी: from License license where order by User.UserName END NHibernate के नए संस्करण को छोड़ दिया कर रही है जब आदेश

+0

पढ़ सकते हैं तो लोग मदद करने में सक्षम होंगे/अधिकतर मैंने एनएच के नए संस्करण की कोशिश की है ibernate (और मैं धाराप्रवाह का उपयोग नहीं करते हैं)। फिर भी समस्या एक ही है। – user835199

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