2011-01-28 18 views
7

मैं NHibernate 3.0.0 और नई सुविधा आलसी गुणों का उपयोग कर रहा हूं। हालांकि, कुछ प्रश्नों में मैं उत्सुकता से गुणों को लोड करना चाहता हूं और मैं क्वेरी को नॉन-प्रॉक्सी इकाई उदाहरणों में परिणाम देना चाहता हूं। मैं LINQ प्रदाता या क्वेरीओवर का भी उपयोग करना पसंद करता हूं। तो मेरी दो इस से संबंधित प्रश्न हैं:NHibernate 3 आलसी गुण और उत्सुक प्रश्न

  1. मुझे पता है कि संपत्तियों की उत्सुक लोड हो रहा है "सभी गुण लाने" के साथ HQL में प्राप्त किया जा सकता है, लेकिन है यह संभव LINQ प्रदाता के साथ भी ऐसा ही करने के लिए या QueryOver?
  2. यदि मैं "सभी संपत्तियों को लाने" के साथ एक एचक्यूएल क्वेरी निष्पादित करता हूं तो परिणाम में इकाइयां वास्तव में उत्सुकता से लोड होती हैं लेकिन वे अभी भी प्रॉक्सीकृत हैं। क्या इससे बचने का कोई तरीका है?

चीयर्स

+0

विशेष रूप से प्रॉक्सी संस्थाओं के साथ समस्या क्या है? –

+1

डब्ल्यूसीएफ का उपयोग कर इकाई को प्रेषित करना, उदाहरण के लिए काम नहीं करेगा। – Yhrn

उत्तर

4

प्रश्न 1: उत्तर नहीं है, 'सभी गुणों को प्राप्त करें' जैसा कि http://ayende.com/blog/4377/nhibernate-new-feature-lazy-properties में वर्णित है, वर्तमान में केवल एचक्यूएल में समर्थित है।

मुझे कहीं भी एनएच Google चर्चाओं में देखना याद है, मैं धागा नहीं ढूंढ पा रहा हूं। अगर मैं इसे आज पा सकता हूं तो उत्तर अपडेट कर दूंगा। लेकिन वर्तमान 3.1 रिलीज के रूप में यह केवल एचक्यूएल में है।

प्रश्न 2 के लिए: यदि वहाँ एक रास्ता इस से बचने के लिए है मैं नहीं जानता, मैं आमतौर पर उन्हें डीटीओ के लिए बदलने और, डीटीओ, नहीं राष्ट्रीय राजमार्ग पोको को क्रमानुसार जब WCF का उपयोग कर। लियोनार्डो का लिंक दिलचस्प लग रहा है और मदद करने में सक्षम हो सकता है।

+0

@Yhrn - क्षमा करें दोस्त, एनएचयूसर पर धागा नहीं ढूंढ सकता है कि यह पूछे कि क्या यह एनएच 3 या भविष्य में रिलीज में होगा। हालांकि, अगर आप उन्हें प्रक्षेपण में शामिल करते हैं तो आप गुण प्राप्त कर सकते हैं। – Phill

0

आप उपयोग कर सकते हैं इस http://davybrion.com/blog/2009/03/must-everything-be-virtual-with-nhibernate/ डी अपनी कक्षाओं (कोई प्रॉक्सी) के आलसी लोड निष्क्रिय करने के लिए
आप इस http://nhibernate.info/doc/nh/en/index.html#querycriteria-dynamicfetching उत्सुक लोड करने के लिए अपने गुण
उपयोग कर सकते हैं या आप इस http://www.timvasil.com/blog14/post/2008/02/WCF-serialization-with-NHibernate.aspx कोशिश कर सकते हैं और अभी भी प्रॉक्सी का उपयोग करें।

+1

आपके लिंक में गुणों को प्राप्त करना संबंधों के साथ करना है, विशिष्ट कॉलम नहीं। एक 'पोस्ट' की 'सामग्री' संपत्ति के आलसी लोडिंग/उत्सुक लोडिंग जैसे। Yhrn http://ayende.com/blog/4377/nhibernate-new-feature-lazy-properties के बारे में बात कर रहा है जो इस समय एचक्यूएल के अलावा किसी भी अन्य चीज़ द्वारा समर्थित नहीं है। – Phill

+0

आप सही फिल हैं। मैंने सवाल बहुत तेज़ पढ़ा और जवाब दिया। धन्यवाद। –

+0

@Phill मुझे विश्वास है कि आप सही हैं और मेरे दोनों सवालों के जवाब बस "नहीं" हैं (कम से कम अभी के लिए, कौन जानता है कि भविष्य की रिलीज क्या ला सकती है)। यदि आप इसके बारे में आश्वस्त महसूस करते हैं, तो अपनी टिप्पणी को उत्तर में परिवर्तित करने के लिए स्वतंत्र महसूस करें और मैं इसे स्वीकार करूंगा। – Yhrn

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