यह अच्छी तरह से ज्ञात ईएफ उपयोगकर्ता के लिए एक साधारण सवाल होना चाहिए।कई रिश्तों के लिए कई मानचित्रण w/विदेशी कुंजी संदर्भ
मेरे पास निम्न स्कीमा (मेरे सिर में) है कि टेबल के बीच संबंधों को कैसे देखना चाहिए।
[FooBar] [Foo] [Bar]
FooId PK,FK Id PK Id PK
BarId PK,FK BarId FK Name
IsRead Name Description
Description
हालांकि, जब मैं करने की कोशिश का उपयोग कर एफई कोड-पहले यह संस्थाओं के रूप में मैं उन्हें व्याख्या की है के बीच संबंधों की व्याख्या करने में विफल रहता है स्कीमा उत्पन्न ([bar]
मेज पर विदेशी कुंजी FooId
कहते हैं) और विफल रहता है पूरी तरह से [FooBar]
पुल तालिका बनाने के लिए।
यदि कोई मुझे ईएफ 4 कोड का उपयोग करके उपरोक्त स्कीमा को प्राप्त करने के तरीके पर मार्गदर्शन कर सकता है- पहले मैं इसकी सराहना करता हूं। समाधान में मेरे पीओसीओ मॉडल पर गुण शामिल हैं, धाराप्रवाह विन्यास या दोनों का एक संकर इससे कोई फर्क नहीं पड़ता - जब तक वांछित डेटाबेस स्कीमा बनाया जाता है।
POCO मॉडल:
public class Foo
{
public int Id { get; set; }
public string Text { get; set; }
public string Description { get; set; }
public int BarId { get; set; }
public Bar Bar { get; set; } /* bar entity */
public virtual ICollection<Bar> BridgedBars { get; set; }
public Foo()
{
Bars = new List<Bar>();
}
}
public class Bar
{
public int Id { get; set; }
public string Text { get; set; }
public string Description { get; set; }
public virtual ICollection<Foo> Foos { get; set; }
public virtual ICollection<Foo> BridgedFoos { get; set; }
public Bar()
{
Foos = new List<Foo>();
BridgedFoos = new List<Foo>();
}
}
public class FooBar
{
public int FooId { get; set; }
public int BarId { get; set; }
public virtual Foo Foo { get; set; }
public virtual Bar Bar { get; set; }
public bool IsRead { get; set; }
}
आप के रूप में FooBar संबंध पर एक संपत्ति (IsRead) है जिसे आप संभवतः कोड से सेट करना चाहते हैं, दोनों Foo और Bar को उनके संबंधित संग्रह FooBars होने की आवश्यकता है। एक बार जब आप FooBar EF पर दोनों सिरों पर गुणों को मानचित्र बनाते हैं (यानी फू और बार में वर्चुअल संग्रह) संबंध को सही ढंग से बनाना चाहिए। प्रत्येक वर्ग को FooBar पर मैप करने के लिए HasMany()। के साथ आवश्यक()। –