2012-02-20 6 views
9

NHibernate से हमारे प्रश्नों को देखते समय यह स्पष्ट है कि कॉलम उपनाम संगत नहीं है, यह निष्पादन के लिए एक समस्या है जब SQL सर्वर निष्पादन योजना असंगत कॉलम उपनाम के कारण अलग क्वेरी के समान क्वेरी को देखने की योजना बना रही है।NHibernate असंगत एसक्यूएल कॉलम ऊर्फ

SELECT this_.Id as Id44_0_ FROM dbo.[Foos] this_ 

SELECT this_.Id as Id43_0_ FROM dbo.[Foos] this_ 

वहाँ किसी भी तरह से हम लगातार स्तंभ उर्फ ​​बना सकते है:

एक उदाहरण कुछ इस तरह हो सकता है?

हम प्रक्षेपण की स्थापना करके ऑटो मानचित्रण के साथ धाराप्रवाह NHibernate का उपयोग कर रहे

+3

यह कोड कहां दिखा रहा है? –

+0

NHibernate आपके द्वारा बनाई गई हर क्वेरी के साथ इस तरह के उपनाम का उपयोग करता है, तो आप कौन सा कोड देखना पसंद करेंगे? – Lehto

+0

दो प्रश्न जो परिणामस्वरूप SQL कथन में हैं। –

उत्तर

1

वैकल्पिक रूप से आप के रूप में

Projections.Property("candidate.Name"), "CandidateName"); 

How to use NHibernate Projections to retrieve a collection

+0

हमें 80+ कक्षाएं बदलनी होंगी और यह स्वीकार्य नहीं है, लेकिन धन्यवाद। – Lehto

0

इस प्रकार क्वेरी में उपनाम के रूप में एक कस्टम नाम प्राप्त कर सकते हैं मैं एक ही कभी नहीं देखा आपका आवेदन चल रहा है, जबकि विभिन्न एसक्यूएल उत्पन्न करने के लिए एनएच क्वेरी। मुझे लगता है कि आपको इसके कारण प्रदर्शन के बारे में चिंता करने की आवश्यकता नहीं है। (इस मामले को छोड़कर जब आपको अक्सर ऐप शुरू करना और बंद करना होगा।)

एसक्यूएल प्रश्नों को हर समय लगातार बनाने के लिए आपको जो भी बदलाव करना पड़ता है (डेटा मॉडल में परिवर्तन के बाद भी) दर्दनाक हैं, बिल्कुल अच्छे समाधान नहीं हैं और मैं आप के लिए स्वीकार्य नहीं लगता है।