क्या ORM POCO डोमेन एंटिटीज की जगह लेते हैं?


10

यह कुछ हद तक इस प्रश्न के समान है लेकिन अधिक व्यापक है।

सामान्य तौर पर, एफई 4.1 की तरह ORMs Pocos समर्थन के साथ, यह अब समझ में आपके डोमेन संस्थाओं के लिए पड़ता है हो वस्तुओं है कि अपने डेटाबेस के लिए कायम कर रहे हैं?

EF 4 या Linq-to-SQL जैसे पुराने ORMs के साथ, आपकी "डेटाबेस ऑब्जेक्ट्स" स्वतः-जनरेट की गईं, और कसकर आपके डेटाबेस से जुड़ी हुई हैं, और इसलिए, गैर-तुच्छ अनुप्रयोगों के लिए, अधिक मजबूत, बुद्धिमान डोमेन होने से पहले मैप किया गया था काम पर लगाना।

क्या नए ORM के साथ विचार सिर्फ मजबूत डोमेन संस्थाओं का निर्माण करने के लिए है, और फिर एक डेटा-लेयर है जो बस उक्त डोमेन संस्थाओं और आपके DBMS के बीच मैपिंग प्रदान करता है?

लेखन में मुझे लगता है कि यह हमेशा लक्ष्य रहा है, लेकिन आसानी से (आसानी से) उपलब्ध उपकरणों के साथ संभव नहीं है, कम से कम .NET दुनिया में नहीं।


EFv4 ने POCO और हाथ से लिखी कक्षाओं के लिए मैपिंग का भी समर्थन किया।
लादिस्लाव मृका

जवाबों:


9

मुझे लगता है कि ORMs के साथ सामान्य लक्ष्य यह है कि डेटाबेस को सीधे डोमेन ऑब्जेक्ट्स में मैप किया जाता है, जो आदर्श रूप से POCO हैं। तो आपके प्रश्न का उत्तर हां है। अब जब EF POCOs की मैपिंग करने में सक्षम है तो उन POCO को डोमेन एंटिटीज़ के रूप में मानना ​​आदर्श है। अन्य ORM जैसे NHibernate के लिए कुछ समय के लिए यह संभव हो गया है और मेरा मानना ​​है कि लोग आमतौर पर उनका उपयोग ऐसे ही करते रहे हैं।

लेकिन डोमेन संस्थाओं को सीधे डेटाबेस में मैप करने का यह लक्ष्य हमेशा प्राप्त नहीं होता है। कुछ मामले हैं जहां डेटाबेस और डोमेन मॉडल के बीच एक महत्वपूर्ण अनुवाद की आवश्यकता होती है। ORM अनुवाद करने में सक्षम नहीं हो सकता है। इस स्थिति में आप मध्यवर्ती POCOs की एक परत चाहते हैं जो ORM के साथ डेटाबेस में मैप की जाती है और फिर एक अनुवाद परत जो उन्हें डोमेन POCO में बदल देती है और फिर से वापस आ जाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.