इस दृष्टिकोण (IMO) के साथ अंतर्निहित मुद्दों के एक जोड़े हैं:
एफई, किसी भी ORM की तरह, हठ चिंता में गिर जाता है। इस तरह से आप हस्तक्षेप नहीं कर सकते कि आप अपने डोमेन मॉडल को कैसे बनाते हैं। तथ्य यह है कि आपके सभी इकाइयां आपके पास एक दृढ़ता स्टोर की तरह लगती हैं, यह संकेत हो सकता है कि आपके बाध्य संदर्भ ओवरलैपिंग हैं या अस्तित्व में नहीं हैं।
बेहतर संरचना में जाने की कोशिश करना एक बुरी चीज नहीं है :) --- हालांकि, मार्क ओरेटा ने कहा, मैं शायद ईएफ संरचना से परेशान नहीं होगा।
प्राथमिक समस्या जो आप चल रहे हैं वह आपके डोमेन मॉडल से पढ़ने की कोशिश कर रही है। ऐसा लगता है कि सिस्टम में अक्सर बहुत अधिक फसल लगती है और इससे चीजें मुश्किल होती हैं। आलसी लोडिंग बिल्कुल इसका सीधा परिणाम है। जब आप पढ़ते हैं, तो आदर्श रूप से, एक क्वेरी स्टोर तक पहुंच के साथ एक क्वेरी परत का उपयोग करना चाहिए (एक ही डेटाबेस हो सकता है) जिसे पढ़ने के लिए अनुकूलित किया गया है। आपके उदाहरण में आपको अपने विक्रय डोमेन में एक असामान्य ग्राहक नाम की आवश्यकता है। यह ठीक है। अपने डोमेन मॉडल को पढ़ने और फिर किसी अन्य बाध्य संदर्भ में किसी डोमेन मॉडल से डेटा खींचने का प्रयास करने से आपको दर्द होता है।
यदि आप अपने डेटा को विभाजित करने के मार्ग पर जाते हैं तो आपको विभाजित करने की आवश्यकता होगी।
हालांकि विभिन्न बीसी से डेटा एक ही स्टोर में हो सकता है, आपको अपने डेटा के बारे में सोचना चाहिए, हालांकि प्रत्येक बीसी का अपना डेटाबेस है। कभी-कभी मेरे पास अलग-अलग फ़ोल्डरों/नामस्थान (यहां .NET) में विभिन्न चिंताओं (कुछ परतें) के साथ एक एकल प्रोजेक्ट है। उन चिंताओं को अलग-अलग असेंबली में विभाजित करना संभव होना चाहिए। तो उन्हें बहुत कसकर नहीं जोड़ा जाना चाहिए। इस डेटा संरचना के लिए यह वही है जिसे आप विभाजित करने का प्रयास कर रहे हैं। आपको संक्षेप में प्रासंगिक बीसी डेटा को एक अलग डेटाबेस में विभाजित करने में सक्षम होना चाहिए। बीसी भर में डेटा प्राप्त करने के लिए तंत्र एक और मामला है और मुझे लगता है कि अगर इसे संबोधित नहीं किया जा सकता है तो आपको मुश्किल हो सकती है।
हालांकि मुझे नहीं लगता कि उस डेटा की ओर से पिछड़े वर्ग की पहचान करने के लिए सबसे अच्छा विचार हो सकता यह निश्चित रूप से सही दिशा :)
स्रोत
2013-03-01 04:39:47
तो तुम कह रहे हैं, यह वास्तव में अगर मैं अपने बिक्री ईसा पूर्व में ग्राहक जोड़ने कोई फर्क नहीं पड़ता, क्योंकि यह अच्छा है सवाल का जवाब देने प्रत्येक बीसी को एक अलग डेटा स्टोर के रूप में पेश करने के लिए? –
इसके अलावा, जब आप कहते हैं कि मुझे अपने विक्रय डोमेन में एक असामान्य ग्राहक नाम की आवश्यकता है, तो क्या आपका मतलब है कि मुझे अपनी बिक्री तालिका में एक और कॉलम ग्राहक नाम जोड़ने की आवश्यकता है? या क्या आपका मतलब है कि मुझे जोड़ने की ज़रूरत है मेरी बिक्री edmx (बीसी) में पूरी ग्राहक तालिका? –
यह बात यह है: यदि आप अपने विक्रय डोमेन में ग्राहक जोड़ते हैं तो यह एक वीओ बन जाता है क्योंकि यह डेटा प्रदान कर रहा है (केवल एक दृश्य) और आप इसके साथ बातचीत नहीं करेंगे। हो सकता है कि बिक्री डोमेन में 'ग्राहक' के पास केवल एक आईडी और पूर्ण नाम हो। लेकिन ग्राहक इकाई में अपने बिक्री डोमेन में" खींचें "नहीं। मैं woul डी अपने बिक्री डोमेन में denormalized ग्राहक नाम के लिए चुनते हैं। बेशक यह सब संदर्भ पर निर्भर करता है :) –