मैं बिना किसी किस्मत के पहले कोड ईएफ 4.1 का उपयोग कर विदेशी कुंजी संबंधों और अन्य बाधाओं को घोषित करने के तरीके पर संसाधनों की खोज कर रहा हूं। असल में मैं कोड में डेटा मॉडल का निर्माण कर रहा हूं और उस मॉडल से पूछने के लिए एमवीसी 3 का उपयोग कर रहा हूं। सब कुछ एमवीसी के माध्यम से काम करता है जो बहुत अच्छा है (माइक्रोसॉफ्ट के लिए kudos!) लेकिन अब मैं इसे काम नहीं करना चाहता क्योंकि मुझे डेटा मॉडल की बाधाओं की आवश्यकता है।एमवीसी 3 में कोड प्रथम इकाई फ्रेमवर्क (4.1) का उपयोग करके विदेशी कुंजी संबंधों को कैसे घोषित किया जाना चाहिए?
उदाहरण के लिए, मेरे पास ऑर्डर ऑब्जेक्ट है जिसमें बाहरी वस्तुओं (टेबल) गुणों का एक टन है। अभी मैं ऑर्डर नो समस्या बना सकता हूं, लेकिन विदेशी कुंजी या बाहरी ऑब्जेक्ट्स को जोड़ने में सक्षम होने के बिना। एमवीसी 3 इसे कोई समस्या नहीं सेट करता है।
मुझे एहसास है कि मैं केवल सहेजने से पहले नियंत्रक वर्ग में ऑब्जेक्ट्स जोड़ सकता हूं, लेकिन अगर मुझे बाधा संबंधों को पूरा नहीं किया गया है तो मैं विफल होने के लिए डीबीकॉन्टेक्स्ट। सेव चेंज() को कॉल करना चाहता हूं।
नई जानकारी
तो, विशेष रूप से, मैं होने के लिये एक अपवाद जब मैं एक ग्राहक वस्तु को निर्दिष्ट बिना एक आदेश वस्तु सहेजने का प्रयास करना चाहते हैं। यह व्यवहार नहीं प्रतीत होता है यदि मैं अधिकांश कोड प्रथम ईएफ दस्तावेज़ों में वर्णित वस्तुओं को लिखता हूं।
नवीनतम कोड:
public class Order
{
public int Id { get; set; }
[ForeignKey("Parent")]
public Patient Patient { get; set; }
[ForeignKey("CertificationPeriod")]
public CertificationPeriod CertificationPeriod { get; set; }
[ForeignKey("Agency")]
public Agency Agency { get; set; }
[ForeignKey("Diagnosis")]
public Diagnosis PrimaryDiagnosis { get; set; }
[ForeignKey("OrderApprovalStatus")]
public OrderApprovalStatus ApprovalStatus { get; set; }
[ForeignKey("User")]
public User User { get; set; }
[ForeignKey("User")]
public User Submitter { get; set; }
public DateTime ApprovalDate { get; set; }
public DateTime SubmittedDate { get; set; }
public Boolean IsDeprecated { get; set; }
}
यह वह जगह है त्रुटि मैं अब मिल जब तक पहुँचने वी.एस. रोगी के लिए दृश्य उत्पन्न: संपत्ति पर
त्रुटि संदेश
ForeignKeyAttribute ' रोगी 'प्रकार ' चिकित्सक पोर्टल.मोडल्स.ऑर्डर ' मान्य नहीं है। विदेशी कुंजी नाम 'अभिभावक' आश्रित प्रकार 'चिकित्सक पोर्टल.मोडल्स.ऑर्डर' पर नहीं मिला था। नाम मान विदेशी कुंजी संपत्ति नामों की सूची को अल्पविराम से अलग किया जाना चाहिए।
सादर,
गुइडो
धन्यवाद सर्गी - मैंने ब्लॉक उद्धरण में कुछ अतिरिक्त जानकारी जोड़ा। –
@ गुइडो - मैंने अपने नवीनतम कोड संपादन में आधारित मेरा उत्तर अपडेट किया है, उम्मीद है कि इससे मदद मिलती है। –
अच्छी तरह से Sergi किया! – Shimmy