इसलिए प्रत्येक Person
में शून्य या अधिक Clubs
और प्रत्येक Club
शून्य या अधिक Persons
है। जैसा कि आपने सही ढंग से कहा है, यह उचित से कई संबंध हैं।
आप शायद जानते हैं कि एक संबंधपरक डेटाबेस इस कई-से-अनेक संबंध लागू करने के लिए एक अतिरिक्त मेज की जरूरत है। इकाई ढांचे के बारे में अच्छी बात यह है कि यह इस रिश्ते को पहचानता है और आपके लिए यह अतिरिक्त टेबल बनाता है।
पहली नज़र में यह एक समस्या यह है कि इस अतिरिक्त तालिका अपने DbContext
में एक dbSet
नहीं है लगता है: "कैसे एक इस अतिरिक्त तालिका के साथ शामिल हो, तो मैं इसके लिए एक DbSet
नहीं है प्रदर्शन करने के लिए?"।
सौभाग्य से, आप अपने प्रश्नों में इस अतिरिक्त तालिका उल्लेख करने के लिए जरूरत नहीं है।
यदि आपको "मुझे सब कुछ दें 'क्लब की तरह एक प्रश्न की आवश्यकता है ... प्रत्येक' व्यक्ति 'से ..." शामिल होने में मत सोचो। इसके बजाय ICollections का उपयोग करें!
सभी देश क्लब वे भाग लेने के साथ सभी "जॉन डो" व्यक्तियों प्राप्त करें:
var result = myDbContext.Persons
.Where(person => person.Name == "John Doe")
.Select(person => new
{
PersonId = person.Id,
PersonName = person.Name,
AttendedCountryClubs = person.Clubs
.Where(club => club.Type = ClubType.CountryClub),
};
इकाई की रूपरेखा है कि एक साथ शामिल होने के पहचान लेंगे अतिरिक्त कई-से-अनेक मेज की जरूरत है, और इस में शामिल होने के प्रदर्शन करेंगे, आप इस अतिरिक्त तालिका का उल्लेख किए बिना।
दौर दूसरा रास्ता: उनके "जॉन डो" व्यक्तियों के साथ पूरे देश क्लब प्राप्त करें:
var result = myDbContext.Clubs
.Where(club => club.Type = ClubType.CountryClub)
.Select(club => new
{
ClubId = club.Id,
ClubName = club.Name,
AnonymousMembers = club.Persons
.Where(person => person.Name == "John Doe"),
}
मैं अनुभव किया है कि एक बार मैं जिसके परिणामस्वरूप संग्रह है कि मैं बजाय मिलती है मैं की चाहते में सोचने के लिए शुरू कर दिया इन संग्रहों को प्राप्त करने के लिए मुझे पता चला कि मैंने शायद ही कभी जुड़ने का उपयोग किया है। यह एक-से-कई संबंधों के साथ-साथ कई से अधिक संबंधों का मामला है। इकाई ढांचा आंतरिक रूप से उचित जुड़ने का उपयोग करेगा।
तो यह 1-बहुत-कई -1 की तरह है? मुझे थोड़ा दुख है कि वे इस सुविधा का समर्थन नहीं करते हैं लेकिन उत्तर के लिए धन्यवाद। – Anonymous
ऐसा लगता है कि आप अपनी उदासी से अकेले नहीं हैं। हालांकि ईएफ कोर टीम के लिए उचित रहें - उनके लिए बहुत कुछ है। –
क्या आप मुझे कक्षा कक्षा के माध्यम से एक व्यक्ति आईडी के आधार पर क्लब पुनर्प्राप्त करने के लिए सबसे अच्छा अभ्यास LINQ समाधान दे सकते हैं? – Anonymous