मैं here रूपरेखा के रूप में एकाधिक डीडीडी बाध्य संदर्भों को लागू करने की कोशिश कर रहा हूं।डीडीडी बाध्य संदर्भों के साथ इकाई कॉन्फ़िगरेशन प्रबंधन
मैं उपयुक्त FluentAPI मैपिंग के साथ प्रत्येक इकाई के लिए एक इकाई प्रकार विन्यास फाइल है (एफई टूलींग का उपयोग कर इंजीनियर रिवर्स): यह एक उदाहरण संदर्भ है। इन कॉन्फ़िगरेशन फ़ाइलों में रिलेशनशिप कॉन्फ़िगरेशन भी शामिल है।
उदा .: UserMap.cs
// Relationships
this.HasOptional(t => t.SecurityProfile)
.WithMany(t => t.Users)
.HasForeignKey(t => t.SecurityProfileCode);
SecurityProfile
और DomainPermission
संदर्भ में DbSets
नहीं हैं। User
और Module
पर नेविगेशन गुणों के कारण उन्हें स्वचालित रूप से मॉडल में लाया जाता है।
यह मेरा पहला मुद्दा बनता है। (और इकाई पर हर दूसरे संबंध)
इसके अलावा
SecurityProfile
के लिए मॉडल बिल्डर के लिए विन्यास जोड़ने: जब किसी अन्य संदर्भ के लिएUser
(या किसी भी अन्य संस्था) जोड़ने मैं दो चीजों में से एक करने के लिए याद है,मॉडल से
SecurityProfile
को किसी भी तरह से मॉडल से बाहर निकालें।
यह रखरखाव दुःस्वप्न का थोड़ा सा बनने वाला है।
मैं उपरोक्त बिंदु 2 में उल्लिखित इकाई ग्राफ को स्पष्ट रूप से "ट्रिम" करने से संतुष्ट होगा।
हालांकि यह Ignore()
इकाइयों के लिए प्रतीत नहीं होता है जब संबंधों को पहले से ही कॉन्फ़िगरेशन फ़ाइलों में परिभाषित किया जा रहा है।
उपरोक्त संदर्भ OnModelCreating
के लिए कोशिश कर रहा modelBuilder.Ignore<SecurityProfile>();
ConfigureAssociations()
में निम्न त्रुटि देता है:
System.InvalidOperationException: नेविगेशन संपत्ति 'SecurityProfile' पर प्रकार 'उपयोगकर्ता' एक घोषित संपत्ति नहीं है। सत्यापित करें कि इसे मॉडल से स्पष्ट रूप से बाहर नहीं रखा गया है और यह एक वैध नेविगेशन प्रॉपर्टी है।
एकमात्र समाधान जो मैं सोच सकता हूं वह बेस कॉन्फ़िगरेशन कक्षाओं का उत्तराधिकारी है और प्रत्येक संदर्भ में संबंध कॉन्फ़िगरेशन को ओवरराइड करना है। ध्यान में रखते हुए हम 30-40 + अलग संदर्भों के साथ समाप्त हो सकते हैं यह एक रखरखाव दुःस्वप्न भी बन सकता है।
वैकल्पिक रूप से मेरे पास प्रत्येक संदर्भ के लिए बहुत विशिष्ट इकाई मॉडल हो सकते हैं, लेकिन फिर से यह इकाई वर्ग विस्फोट और डुप्लिकेट कॉन्फ़िगरेशन में संभावित रखरखाव समस्या का कारण बन जाएगा।
बाध्य संदर्भों को लागू करते समय मैं इकाइयों और उनकी इकाई कॉन्फ़िगरेशन का सर्वोत्तम प्रबंधन और रखरखाव कैसे कर सकता हूं?
अजीब है कि कोई [ईएफ प्रोजेक्ट साइट] (http://entityframework.codeplex.com/discussions) पर विचार करने के लिए मतदान करेगा, "आपके आवेदन में एंटीटी फ्रेमवर्क का उपयोग करने के बारे में प्रश्नों के लिए कृपया स्टैक ओवरफ़्लो का उपयोग करके एक प्रश्न पोस्ट करें इकाई-फ्रेमवर्क टैग। " –
यदि आप नज़दीकी वोट देखते हैं तो आप देखेंगे कि यह "बहुत व्यापक" था। और मैं बुद्धि से सहमत हूं। आपके पास तीन प्रश्न हैं और एक नहीं। एक साइड नोट: डीडीडी का कहना है कि आपकी संस्थाओं को निरंतर अज्ञान होना चाहिए जो आपकी संस्थाएं नहीं हैं, क्योंकि आपको स्पष्ट रूप से उन्हें बदलना है ताकि वे ईएफ की आवश्यकताओं को पूरा कर सकें। – jgauffin
@jgauffin मुझे 3 प्रश्नों को 3 प्रश्नों को कम करने में खुशी होगी। हालांकि यह एक सरल "मैं यह कैसे कर सकता हूं" प्रश्न नहीं है और पृष्ठभूमि की जानकारी सभी 3 प्रश्नों के लिए उपयोगी है। इसलिए "बहुत व्यापक" होने का कारण वैध आईएमओ नहीं है क्योंकि एसओ इन प्रकार के प्रश्न पूछने के लिए अनुशंसित आउटलेट है। शायद यह ओपन सोर्स प्रोजेक्ट्स के साथ एक समस्या है जो एसओ को अपने समुदाय चैनल के रूप में अपहरण कर रही है। लेकिन किसी अन्य विकल्प के बिना प्रतीत होता है, यह एकमात्र आउटलेट है जिसे मैं प्रतिक्रिया प्राप्त करने की उम्मीद कर रहा हूं। आपके सुझाव के जवाब में –