2009-03-25 8 views
6

उत्पन्न करने के लिए कोड्समिथ के साथ एनएचबेर्नेट का उपयोग करना सिर्फ एनएचबेरेट सीखना शुरू कर दिया। यह प्रत्येक डेटाबेस तालिका के लिए उचित hbm.xml कॉन्फ़िगरेशन फ़ाइलों को लिखने के बजाय कठिन लग रहा है।ओआरएम

सवाल यह है कि NHibernate टेबल में पढ़ सकता है और स्वचालित रूप से रिश्तों और आवश्यक कॉन्फ़िगरेशन फ़ाइल के साथ-साथ डेटाबेस मैपर कक्षाएं भी पुनर्प्राप्त कर सकता है? ऐसा लगता है कि प्रोग्रामर को अभी भी शुरुआत में बहुत सारे जमीन का काम करना है। तब मैं कोम्स्मिथ के पास आया जिसने एनएचबेरेट के लिए टेम्पलेट प्राप्त किए? क्या यह अंतर भरता है?

उत्तर

4

आप कोड टेम्पलेट्स का उपयोग कर सकते हैं, लेकिन यह अभी भी एक दर्द IMHO बनाता है। Fluent nHibernate का उपयोग करने का सबसे अच्छा तरीका है। उनके पास एक नई ऑटो-मैपर सुविधा है, जो सम्मेलन द्वारा कॉन्फ़िगरेशन का उपयोग करती है। कोई मैपिंग फाइल नहीं, यह केवल धारणाएं बनाती है कि आप समान नामों का उपयोग करते हैं और किसी इकाई नाम को तालिका नाम में परिवर्तित करने के नियमों को परिभाषित कर सकते हैं।

1

कोड जनरेशन वास्तव में अच्छी तरह से उस अंतर को भर सकता है, मैंने कोडस्मिथ का उपयोग शुरू किया, लेकिन फिर उन्होंने एक वेतन वस्तु बनाई ताकि मैं MyGeneration पर चले जाऊं। मेरा दृष्टिकोण डीबी पर पहले हमला करना है, कोड जेन मैपिंग फाइलें, और जीन क्लासेस यदि वे पहले से मौजूद नहीं हैं। यह कुछ वास्तव में जल्दी से चल रहा है, एक प्रोटोटाइप के लिए महान और परीक्षण डेटा बना रहा है।

मैपिंग फाइल, कक्षाएं और डीबी अक्सर हाथ से बदल जाते हैं। कुछ मामलों में मैंने कोड पीढ़ी को सीआई के हिस्से के रूप में काम करने की कोशिश की है - लेकिन ऐसा करना मुश्किल साबित हुआ है, जब तक कि आप इस बात के बारे में अनुशासित नहीं हैं कि आप कहां भाग लेते हैं, आप कोड कोड तैयार करते हैं। आंशिक कक्षाएं एक सहायता थीं, लेकिन फिर भी एक ही पृष्ठ पर पूरी टीम को प्राप्त करने की एक जांच थी, कोई भी उपकरण को उनके द्वारा अधिलेखित कोड को पसंद नहीं करता है, भले ही आप रोलबैक और विलय कर सकें।

+0

पिछले परियोजना मुझे लगता है कि इस्तेमाल किया कोड पर था gen'ed आधे रास्ते के माध्यम से कोड जीन बंद कर दिया है जब हम काफी तेजी से जनरेटर को अद्यतन करने नहीं रख सकता है .... – JoshBerke

+0

में आपकी राय, मुक्त होने के अलावा, MyGeneration एक बेहतर कोड-जेन है? – devXen

+0

कोडस्मिथ या दूसरों के साथ पर्याप्त अनुभव नहीं है, मुझे यह quirky लेकिन अच्छा लगता है। यह अब खुला स्रोत है, और टेम्पलेट्स सी # में लिखे गए हैं - ये सभी प्लस हैं। – MrTelly

1

मैं कोडस्मिथ के लिए काम करता हूं ... कृपया ध्यान रखें कि MyGeneration को हमेशा के लिए अपडेट नहीं किया गया है जिसका अर्थ है कि इसमें भी समर्थन नहीं है। कोडस्मिथ पूरी तरह से अपने उत्पादों और टेम्पलेट का समर्थन करता है। इसका मतलब है कि किसी भी टेम्पलेट कीड़े को भी कोडमिथ द्वारा तय और सत्यापित किया जाएगा।

धन्यवाद

-Blake Niemyjski

+0

जबकि मैं सहमत हूं कि पूर्ण प्रकटीकरण के उद्देश्य से माईजनरेशन को उम्र में अपडेट नहीं किया गया है, यह ध्यान देने योग्य है कि आप कोडस्मिथ पर एक सक्रिय डेवलपर हैं। – furtive

+0

हां, यह सच है। मैंने इंगित करने के लिए मेरी अधिकांश पोस्ट अपडेट की हैं। –

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