2011-06-16 9 views
8

हम फायरबर्ड बैकएंड के साथ बड़ी सफलता के लिए एनएचबीर्नेट का उपयोग कर रहे हैं। मेरा प्रश्न फायरबर्ड द्वारा समर्थित एनएचबेर्नेट में उपलब्ध सुविधाओं से संबंधित है। यदि आपके पास फायरबर्ड और एनएचबेर्नेट के साथ कोई विशेषज्ञता है तो आपकी टिप्पणियां आपका स्वागत है।फायरबर्ड के साथ NHibernate ... क्या ये सुविधाएं सक्षम हैं?

  1. Firebird समर्थन "भविष्य" क्वेरी करता है? मेरे पढ़ने से यह दिखाई देगा कि फायरबर्ड कुछ डेटाबेसों में से एक है जो इस सुविधा का समर्थन नहीं करता है। क्या किसी के पास कामकाज है क्योंकि "भविष्य" का उपयोग करने के लिए एक अच्छी सुविधा होगी।

  2. क्या फ़ायरबर्ड एनएचबीर्नेट फीचर "ready_sql" का समर्थन करता है। किसी कारण से मैं इसे फायरबर्ड में काम नहीं कर सकता और लगातार पैरामीटर आकार के बराबर नहीं होने के बारे में चेतावनी (निबर्ननेट प्रोफाइलर में) प्राप्त करता हूं।

  3. क्या फ़ायरबर्ड बैचिंग का समर्थन करता है? NHibernate मैपिंग में हम बैचिंग निर्दिष्ट करते हैं हालांकि प्रोफाइलर में इसका कोई सबूत नहीं देख सकता है।

रुचि रखने वालों के लिए हम एनएचबेर्नेट को कॉन्फ़िगर करने के लिए फ्लुएंट एनएचबेर्नेट का उपयोग कर रहे हैं। सबकुछ अच्छी तरह से काम करता है और हमारे पास ओआरएम पर बहुत अधिक नियंत्रण है हालांकि उपर्युक्त वस्तुओं पर स्पष्टीकरण की आवश्यकता है।

आपके विचार?

उत्तर

1

जहां तक ​​मुझे पता है बैचिंग केवल एमएसएसक्ल और ओरेकल के लिए समर्थित है। यहां तक ​​कि MySQL के समर्थन में बैचिंग भी नहीं है।

आप हमेशा एनएच स्रोत कोड डाउनलोड कर सकते हैं और इन सुविधाओं को समर्थित करते हैं तो एक नज़र डालें। आईएमओ फायरबर्ड हाल के वर्षों में बहुत लोकप्रिय नहीं है और यह संभव है कि इन सुविधाओं को एनएच में फायरबर्ड के लिए लाने में ज्यादा अंतर नहीं है।

1

"भविष्य" NHibernate की एक विशेषता है। about futures पढ़कर जो मैंने समझा, उससे डेटाबेस की सुविधा आवश्यक है कि सर्वर पर एक बैच (राउंड-ट्रिप) में एकाधिक कथन भेजें और परिणाम भी एक बैच में प्राप्त करें।

मुझे लगता है कि फायरबर्ड इसकी अनुमति नहीं देता है, क्योंकि आपको व्यक्तिगत रूप से बयान तैयार करना और निष्पादित करना है।

हालांकि यदि आप केवल डालने/अपडेट/हटाते हैं तो आप execute block कथन के भीतर उन बयानों को समूहित कर सकते हैं, लेकिन यह केवल एक परिणाम सेट ही लौटा सकता है।

एक निश्चित उत्तर प्राप्त करने के लिए firebird-support मेलिंग सूची में यह पूछना सुनिश्चित करें।

+0

ब्लॉक निष्पादित पंक्तियां वापस कर सकते हैं। प्रत्येक "निलंबित" परिणाम पंक्तियों के रूप में आउटपुट पैरामीटर के वर्तमान सेट देता है। किंडा इटेटरेटर विधियों की तरह कुछ नेट भाषाओं में काम करता है। इसलिए पर्याप्त आउटपुट पैरामीटर और प्रत्येक कथन के बाद निलंबन और किसी को फ़ायरबर्ड के लिए इस सुविधा को लागू करने का आधार होना चाहिए। –

+0

निश्चित रूप से, मैं बस सोच रहा था कि "निष्पादन ब्लॉक" का उपयोग करना एक बहुत ही सुरुचिपूर्ण समाधान नहीं है, क्योंकि आपको आउटपुट पैरामीटर घोषित करने की आवश्यकता है जो ब्लॉक में विभिन्न बयानों से संभवतः विभिन्न परिणाम पंक्तियों में फिट बैठती हैं। यूनियन स्टेटमेंट में कॉलम प्रकारों के मिलान की आवश्यकता की तरह। लेकिन मैं सहमत हूं, इसे इस तरह कार्यान्वित करना संभव होना चाहिए :) – magnoz