मैंने सोचा कि WithOptionalDependent
का उपयोग कब और WithOptionalPrincipal
का उपयोग करने के लिए एक निश्चित उत्तर प्राप्त करने में सहायक हो सकता है। दो कार्यों के लिए सहायता थोड़ा अस्पष्ट है, और मैं खुद को कई स्टैक ओवरफ़्लो उत्तरों और उत्तर देने वाले अन्य साइटों पर उत्तर देने के लिए खुद को महसूस करता हूं ताकि मुझे विश्वास हो कि रिश्ते सही दिशा में जा रहे हैं। रिश्ते के दूसरे पक्ष पर एक नेविगेशन संपत्ति के बिना वैकल्पिक:के साथ वैकल्पिक निरंतर बनाम वैकल्पिक सिद्धांत - परिभाषित उत्तर?
वैकल्पिक होने के लिए रिश्ते को कॉन्फ़िगर करता है:
यहाँ MSDN के बारे में
WithOptionalDependent
क्या कहते है। इकाई कॉन्फ़िगर किया जा रहा प्रकार निर्भर होगा और प्रिंसिपल में एक विदेशी कुंजी होगी। इकाई प्रकार जो संबंध लक्ष्य रिश्ते में प्रिंसिपल होगा। रिश्ते के दूसरे पक्ष पर एक नेविगेशन संपत्ति के बिना वैकल्पिक:वैकल्पिक होने के लिए रिश्ते को कॉन्फ़िगर करता है:
और यहाँ यह क्या कहते हैं के बारे में
WithOptionalPrincipal
है। इकाई कॉन्फ़िगर किया जा रहा प्रकार रिश्ते में प्रिंसिपल होगा। इकाई प्रकार कि संबंध लक्ष्य निर्भर होंगे और प्रिंसिपल के लिए एक विदेशी कुंजी है।
रेखा "इकाई प्रकार कॉन्फ़िगर किया जा रहा है" वह हिस्सा है जो हमेशा मुझे भ्रमित करता है (और मैं दूसरों को मानता हूं)।
इस उदाहरण में:
class MyEntityA
{
[Key]
public int Id { get; set; }
public int BId { get; set; }
[ForeignKey("BId")]
public MyEntityB B { get; set; }
}
class MyEntityB
{
[Key]
public int Id { get; set; }
}
modelBuilder.Entity<MyEntityA>().HasOptional(a => a.B).WithOptionalDependent();
"इकाई प्रकार के लिए कॉन्फ़िगर किया जा रहा" है MyEntityA
या MyEntityB
की चर्चा करते हुए? मुझे लगता है कि यह पूर्व है।
यदि यह सही है, तो आप WithOptionalPrincipal
का उपयोग कब करेंगे?
मुझे वास्तव में मेरे कोड उदाहरण में लगता है कि यह वास्तव में WithMany
होना चाहिए और न तो वैकल्पिक विकल्पों में से कोई भी होना चाहिए। स्पष्ट रूप से मैं अभी भी उलझन में हूँ!
इन दोनों कार्यों के लिए अधिभार हैं जो नेविगेशन संपत्ति को दूसरी दिशा में लेते हैं। मुझे लगता है कि उन ओवरलोड्स उन उत्तरों को नहीं बदलते हैं, लेकिन अगर मैं गलत हूं तो कृपया मुझे सही करें।
मुझे आशा है कि यह बड़े समुदाय के लिए भी सहायक होगा।