मैंने देखा कि एंटीटी फ्रेमवर्क में अभी भी उनकी नवीनतम रिलीज में बहुत सारी "ऑटोमैटिकल" विशेषताएं हैं। हमेशा की तरह, यह वास्तव में दोहरी तलवार वाली तलवार है।क्या मैं इकाई फ्रेमवर्क कोड में स्वचालित संबंधों को पहले अक्षम कर सकता हूं?
विशेष रूप से, मैं fluentAPI (http://msdn.microsoft.com/en-us/library/hh295844(v=vs.103) का उपयोग करके कोड में फ्लाई पर अपना मॉडल बनाने के लिए ऑनमोडेलबिल्डर ईवेंट का उपयोग कर रहा हूं। .aspx)। मेरे पास इकाइयों का एक बड़ा समूह है, और वे सभी माइक्रोसॉफ्ट "मानकों" का पालन नहीं करते हैं। उदाहरण के लिए, मेरे आईडी कॉलम को PersonId के बजाय Person_id नाम दिया गया है। इस प्रकार, इकाई हमेशा किसी तालिका पर प्राथमिक कुंजी को स्वत: पहचान नहीं पाती है, या कम से कम, ऐसा नहीं लगता है।
मुझे मॉडल बनाने के दौरान स्पष्ट होने पर कोई फर्क नहीं पड़ता है, लेकिन मुझे परेशानी क्या है कि मुझे हमेशा यकीन नहीं है कि गुण और रिश्तों क्या संस्थाएं स्वतः पता लगाएंगी और कौन सा गलती से अनदेखा या गलत पहचान होगी। चूंकि मेरी अधिकांश संस्थाओं में सहायक विधियों और गुणों (enums, आदि को संभालने के लिए सामान) के साथ आंशिक वर्ग भी है, मुझे बहुत डर है कि किसी दिन एंटिटी स्वचालित रूप से उन चीजों के बीच मैपिंग बनायेगी जिन्हें मैप नहीं किया जाना चाहिए (विफलता इकाई हो सकती है या कुछ अस्पष्ट प्रोग्रामर)।
क्या कोई तरीका है कि मैं एंटिटी की ऑटो-रिलेशनशिप-हुकअप सुविधा को अक्षम कर सकता हूं ताकि मैं अपने ऑनमोडेलबिल्डर विधि में 100% स्पष्ट हो सकूं? या, कम से कम, मुझे कैसे पता चलेगा कि मुझे अतिरिक्त मैपिंग विवरण जोड़ने की आवश्यकता है (जैसे फ़ील्ड को वैकल्पिक घोषित करने की आवश्यकता है, या जब कोई विशिष्ट नेविगेशन प्रॉपर्टी स्वतः नहीं हो पाई जाती है)?
धन्यवाद!
यदि यह सामान आपको चिंतित करता है, तो आपको शायद "कोड पहले" सामग्री –
की बजाय ईएफ के "डिजाइन पहले" पहलुओं का उपयोग करना चाहिए, मैंने संयोग से ईडीएमएक्स के साथ शुरुआत की। मैं कोड-पहली सोच में 'अपग्रेड' करने की कोशिश कर रहा था कि यह प्रबंधित करना आसान हो सकता है क्योंकि यह सभी कोड में होगा, लेकिन यह प्रयास और समय डिबगिंग के लायक नहीं हो सकता है। – Brett