मैं एक साधारण इकाई ढांचा कोड पहले आवेदन बनाने की कोशिश कर रहा हूं। मैं इन कक्षाओं में है:एंटिटी फ्रेमवर्क कोड कैसे प्राप्त करें काम करने के लिए पहले और शून्य से विदेशी कुंजी गुण?
public class User
{
public int UserId { get; set; }
public string Username { get; set; }
public virtual ActivationTicket ActivationTicket { get; set; }
}
public class ActivationTicket
{
public int ActivationTicketId { get; set; }
public virtual User User { get; set; }
public string Ticket { get; set; }
}
जब मैं एक नया उपयोगकर्ता बनाने और डेटाबेस (एक ActivationTicket है कि बिना किसी उपयोगकर्ता) मैं एक अपवाद
सम्मिलित बयान के साथ विरोध हुआ प्राप्त करने के लिए यह को बचाने की कोशिश विदेशी कुंजी बाधा "सक्रियण टिकट_उसर"। संघर्ष डेटाबेस "टेस्ट", तालिका "dbo.ActivatioTickets", कॉलम 'सक्रियण टिकट ID' में हुआ। बयान समाप्त कर दिया गया है।
मुझे लगता है एफई उपयोगकर्ता और ActivationTicket के बीच मानचित्रण व्यवहार करता है 1-1 के रूप में, लेकिन यह 1-0..1
यह क्या काम करने के लिए मैं पाने के लिए क्या करना होगा होना चाहिए?
modelBuilder .Entity<User>() .HasOptional<ActivationTicket>(u => u.ActivationTicket) .WithOptionalPrincipal();
यह आपको एक प्रयोक्ता-आईडी है कि व्यर्थ है के साथ एक ActivationTickets तालिका दे देंगे:
मैं अभी ईएफ के साथ शुरू कर रहा हूं इसलिए मुझे पूरा यकीन नहीं है कि यह मैपिंग नियम कहां रखा जाए। क्या उन सभी मैपिंग को स्टोर करने के लिए एक अनुशंसित जगह है? – b3n
आपके पास दो विकल्प हैं। 1) इसे सीधे अपनी कक्षा की एक विधि में रखें जो डीबीकॉन्टेक्स्ट से प्राप्त होता है: संरक्षित ओवरराइड शून्य ऑनमोडेल क्रिएटिंग (मॉडलबिल्डर मॉडलबिल्डर) - या - 2) मॉडलबिल्डर का उपयोग करके अलग-अलग वर्गों में मैपिंग को परिभाषित करें। कॉन्फ़िगरेशन। जोड़ें (नया ...) – anon
मैं अलग-अलग वर्गों में मैपिंग को परिभाषित करने की दृढ़ता से अनुशंसा करता हूं (एंटीटी टाइप कॉन्फ़िगरेशन से प्राप्त YourModelClass_MappingClass को परिभाषित करें, और इस वर्ग के सीटीआर में मैपिंग को परिभाषित करें, फिर आपको इसे डीबीकॉन्टेक्स्ट ऑनमोडेल क्रिएटिंग इवेंट में प्रारंभ करना होगा क्योंकि @anon ने अपनी टिप्पणी में लिखा था। अलग-अलग वर्गों का उपयोग करने के लिए क्योंकि यह एक ही जगह पर आपके सभी वर्गों के लिए मानचित्रण को परिभाषित करने के लिए एक वास्तविक गड़बड़ होगी –
Prokurors