मुझे स्वीकृत उत्तर से असहमत होना है। प्रश्न में, सिस्टम में लगभग एक ही बड़ा डेटाबेस है जिसमें लगभग हर तालिका के बीच मजबूत विदेशी कुंजी संबंध हैं (साथ ही जहां मैं काम करता हूं)। इस परिदृश्य में, इसे छोटे डेटाकॉन्टेक्स (डीसी) में तोड़ने के दो तत्काल और प्रमुख दोष हैं (दोनों प्रश्न द्वारा उल्लिखित):
- You lose relationships between some tables. You can try to choose your DC boundaries wisely, but you will eventually run into a situation where it would be very convenient to use a relationship from a table in one DC to a table in another, and you won't be able to.
- Some tables may appear in multiple DC's. This means that if you want to add table-specific helper methods, business logic, or other code in partial classes, the types won't be compatible across DC's. You can work around this by inheriting each entity class from its own specific base class, which gets messy. Also, schema changes will have to be duplicated across multiple DC's.
अब वे महत्वपूर्ण कमी हैं। क्या उन पर काबू पाने के लिए पर्याप्त फायदे हैं? प्रश्न प्रदर्शन का उल्लेख है:
मेरी मुख्य चिंता यह है कि एक विशाल तत्काल और निपटान करना
व्यक्तिगत संचालन के लिए हर समय DataContext कक्षा संबंधित है
डेटाबेस के विशिष्ट क्षेत्रों में एक अनावश्यक लगाया जाएगा
आवेदन संसाधनों पर लगाव।
असल में, यह सच नहीं है कि एक बड़ी डीसी काम की एक विशिष्ट इकाई में तत्काल या उपयोग करने के लिए काफी अधिक समय लेता है। वास्तव में, पहले उदाहरण के बाद चलने वाली प्रक्रिया में बनाया गया है, उसी डीसी के बाद की प्रतियां लगभग तत्काल बनाई जा सकती हैं ।
एक से अधिक डीसी के लिए एकमात्र वास्तविक लाभ, एकमात्र विदेशी कुंजी रिश्ते वाले बड़े डेटाबेस यह है कि आप अपने कोड को थोड़ा बेहतर बना सकते हैं। लेकिन आप आंशिक कक्षाओं के साथ पहले से ही ऐसा कर सकते हैं।
साथ ही, कार्य अवधारणा की इकाई मूल प्रश्न के लिए वास्तव में प्रासंगिक नहीं है। काम की इकाई आम तौर पर यह दर्शाती है कि एक डीसी instance कितना काम कर रहा है, डीसी वर्ग करने के सक्षम है।