किसी ऐसे व्यक्ति के रूप में जिसने LINQ to SQL से (फ्लुएंट) एनएचबेर्नेट से स्विच किया है, यहां कुछ चीजें हैं जिन्हें मैंने देखा है।
LINQ को एसक्यूएल तो कैसे एक में शामिल होने-उपवर्ग के बराबर करने के लिए यह पता लगाने की समय लगा। कई संशोधनों के बाद, मैंने कहीं पढ़ा है कि यह संभव नहीं है। यदि सभी कॉलम उसी तालिका में हैं तो यह केवल विरासत को मानचित्रित कर सकता है। यदि कुछ कॉलम हैं तो यह बहुत अच्छा है, लेकिन मेरे मामले में बहुत सारे टन हैं और उप-वर्ग अन्य उप-वर्गों के माता-पिता हैं और इसी तरह। मुझे अपने ओआरएम के लिए उन्हें एक टेबल में क्यों रखा जाना चाहिए? अनुभव से
NHibernate मजबूत (कभी कभी छोटे त्वरित परियोजनाओं के लिए बहुत ज्यादा) और यद्यपि छोटी परियोजनाओं के माध्यम से यह से परिचित हो गया है, मैं इसे बहुत ज्यादा हो सकता है महसूस किया और एसक्यूएल को LINQ के मार्ग से चला गया के बाद से मैं उत्पन्न कर सकता है एक DBML फ़ाइल और मिनटों के भीतर जा रहा है।
फ्लुएंट एनएचबेर्नेट। दोनों दुनिया के सर्वश्रेष्ठ (मेरे मामले में) लेता है। मैं जिस तरीके से चाहता हूं उसे मैप कर सकता हूं और अपना डेटाबेस जिस तरह से चाहता हूं और मुझे अपने डोमेन या डेटा मॉडल में समझौता नहीं करना है। इसके अलावा एक शब्द: ऑटोमैपिंग ... केक पर टुकड़े टुकड़े करना।
मैं एक ORM के साथ जाने का पड़ता था एक बार मैं सीमाओं पाया और एसक्यूएल को LINQ के साथ कुछ सड़क धक्कों मारा, लेकिन धाराप्रवाह NHibernate इस चुनाव करना आसान हो गया है, और मुझे नहीं लगता कि मैं हूँ इसे तब तक छोड़ दें जब तक कि कुछ न हो जो नौकरी को और भी बेहतर करे।
तो, रॉब स्कॉट ने कहा, सवाल यह है कि आप डोमेन => डेटा मॉडल को कैसे सारणित कर रहे हैं? और क्या आप किसी डोमेन या डेटाबेस से शुरू कर रहे हैं? संबंध कितने जटिल हैं? यदि आपके पास कोई विरासत है तो मैं कहूंगा कि केवल एक अमीर ओआरएम ढांचे के साथ जाओ और खुद को दु: ख बचाएं।
फ्लुएंट एनएचबर्ननेट में मैंने कभी भी पाया है कि कुछ बेहतरीन दस्तावेज हैं और बहुत सारे समर्थन, नोट्स, ब्लॉग और संसाधन हैं जो कुछ भी कम करने से नफरत करते हैं ... आईएमओ! मैं 24 घंटों से भी कम समय में दौड़ रहा था।
ओह और यदि आप एनएचबर्ननेट के लिए नया हैं तो व्हील को ग्रीस बनाने में सहायता के लिए एक्शन बुक में एनएचबीर्नेट को उठाएं, हालांकि उस ढांचे के लिए भी बहुत मदद है।
सबसे अच्छा संकेत है कि एक उपकरण काम नहीं कर रहा है जब आपको उपकरण का काम करना है ... LINQ से एसक्यूएल मैं अनुकूलित कर रहा था, सफेद कागजात पढ़ रहा था, पागलपन के सभी प्रकार और यह उचित प्रश्न उत्पन्न करने से इनकार कर दिया, ठीक है जब मैं अपनी मेज और डोमेन को संशोधित करने का लुत्फ उठाता था, मैंने कहा कि मुझे फ्लुएंट को एक भंवर देने दो, और मुझे खुशी है कि मैंने किया।
आपको शुभकामनाएं .. लंबी प्रतिक्रिया के लिए खेद है; यह सब पिछले पांच या तो दिन में कर दिया गया है, इसलिए मुझे लगता है कि मैं अभी भी पकड़ा कर रहा हूँ :-)
एमवीसी टेम्पलेट्स के साथ सबसनिक 3 भी है। –
एक IQueryable ऑब्जेक्ट को वापस नहीं कर रहा है लिंक-टू-एसक्यूएल को एक धाराप्रवाह एपीआई बनाता है? – Nick