26

मैं अपने ओआरएम उपकरणों के लिए एक इकाई फ्रेमवर्क और एलएलबीएल पृष्ठभूमि से आ रहा हूं।FluentNHibernate और NHibernate के "कोड द्वारा मानचित्रण" के बीच अंतर

मुझे NHibernate के आधार पर एक नई प्रणाली बनाने के लिए कहा गया है। मैंने कभी ऐसा नहीं किया है, इसलिए मैं ताजा आंखों से इसमें आ रहा हूं।

एनएलबर्ननेट में फ्लुएंट एनएचबेर्नेट और "कोड द्वारा मैपिंग" के साथ मैपिंग के बीच क्या अंतर है? क्या कोई वरीयता है?

+2

यह मेरा बहुत विश्वास नहीं है। आप एनएच क्यों नहीं सीखेंगे और खुद के लिए देखें मतभेद क्या हैं? ** वैसे, मैं जावा सीख रहा हूं और सी # में पृष्ठभूमि है, मतभेद क्या हैं? ... ** – gdoron

+2

मेरा मानना ​​है कि वह विशेष रूप से मैपिंग का जिक्र कर रहा है। डाउनवोट ऑफसेट करने के लिए +1 और प्रश्न को और स्पष्ट होने के लिए संपादित किया। – Origin

+4

मैं देख सकता हूं कि यह एक नए-कॉमर्स के लिए भ्रमित कैसे होगा, लेकिन @Origin की तरह नीचे दिए गए उनके जवाब में और डॉटजो ने अपने जवाब में क्या संकेत दिया, "कोड द्वारा मानचित्रण" सुविधा परियोजना की उम्र की तुलना में अपेक्षाकृत नई है। एक नौसिखिया के लिए, मैं सिर्फ एनएचबीर्नेट में निर्मित "कोड द्वारा मैपिंग" के साथ जाने की अनुशंसा करता हूं।मैं खुद फ्लुएंट एनएचबीनेट के साथ रहना जारी रखूंगा क्योंकि मेरे पास बहुत सारे कोड हैं जो वर्तमान में इसका उपयोग करते हैं और यह वाक्यविन्यास व्यक्तिगत रूप से मुझे अधिक समझ में आता है। –

उत्तर

19

Fluent NH

धाराप्रवाह NHibernate NHibernate के मानक XML मानचित्रण फ़ाइलों के लिए एक विकल्प प्रदान करता है। एक्सएमएल दस्तावेज़ लिखने के बजाय, आप दृढ़ता से टाइप किए गए सी # कोड में मैपिंग लिखते हैं। यह आसान रिफैक्टरिंग, पठनीयता और अधिक संक्षिप्त कोड में सुधार करने की अनुमति देता है।

बनाम

NH's new mapping by code

यह एक XML- कम मानचित्रण समाधान पुस्तकालय अनुरूप पर आधारित है, 3.2 के बाद NHibernate का एक अभिन्न हिस्सा जा रहा है। इसका एपीआई पर एक्सएमएल नामकरण और संरचना के अनुरूप है। में मैपिंग विधियां कैसे बनाई गई हैं, में एक मजबूत सम्मेलन है। इसके नाम लगभग एक्सएमएल तत्वों के नामों के बराबर हमेशा बराबर होते हैं।

10

इनमें से कुछ प्राथमिकता है, इनमें से कुछ मौजूदा कोडबेस है। ऐसा समय था जब NHibernate में गैर-एक्सएमएल मैपिंग विकल्पों में कोई भी निर्मित नहीं था। इसे ठीक करने के लिए वहां कुछ समाधान थे - उदा। confORM, Fluent NHibernate, और दूसरों को शायद मुझे पता नहीं है।

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

मैंने "मौजूदा कोडबेस" का भी उल्लेख किया। जाहिर है, अगर आपके पास ऐसी परियोजना है जो पहले से ही फ्लुएंट एनएचबेर्नेट के साथ मैप की गई है, तो इसके साथ जारी रखना सबसे अच्छा होगा। यदि आप ताजा शुरू कर रहे हैं, तो शायद अंतर्निहित "मैपिंग बाय कोड"

1

मुझे पता है कि यह पोस्ट पुराना है, लेकिन इस मामले पर रुचि रखने वाले किसी और के लिए, मैं दृढ़ता से आपको सलाह दूंगा इस ब्लॉग को पढ़ें। यह मुझे यह स्पष्ट रूप से स्पष्ट करता है और यह आपको दो दृष्टिकोणों के बीच तुलना भी देता है।

http://notherdev.blogspot.de/2012/01/nhibernates-mapping-by-code-first.html

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