संस्थाओं (या वस्तुओं) के संदर्भ में आपके पास एक ऐसी Classवस्तु है जिसका एक संग्रह है Studentsऔर एक ऐसी Studentवस्तु है जिसका संग्रह है Classes। चूंकि आपकी StudentClassतालिका में केवल Ids और कोई अतिरिक्त जानकारी नहीं है, इसलिए EF ज्वाइनिंग टेबल के लिए एक इकाई नहीं बनाता है। यह सही व्यवहार है और यही आप उम्मीद करते हैं।
अब, आवेषण या अपडेट करते समय, वस्तुओं के संदर्भ में सोचने की कोशिश करें। उदाहरण के लिए, यदि आप दो छात्रों के साथ एक कक्षा सम्मिलित करना चाहते हैं, तो Classऑब्जेक्ट बनाएं, ऑब्जेक्ट्स, Studentछात्रों को कक्षा Studentsसंग्रह में जोड़ें Classऑब्जेक्ट को संदर्भ और कॉल में जोड़ें SaveChanges:
using (var context = new YourContext())
{
var mathClass = new Class { Name = "Math" };
mathClass.Students.Add(new Student { Name = "Alice" });
mathClass.Students.Add(new Student { Name = "Bob" });
context.AddToClasses(mathClass);
context.SaveChanges();
}
यह Classतालिका में एक प्रविष्टि, तालिका में दो प्रविष्टियाँ Studentऔर तालिका में दो प्रविष्टियों StudentClassको एक साथ जोड़ देगा।
आप मूल रूप से अपडेट के लिए भी ऐसा ही करते हैं। बस डेटा प्राप्त करें, संग्रह से वस्तुओं को जोड़कर और हटाकर ग्राफ को संशोधित करें, कॉल करें SaveChanges। विवरण के लिए इस तरह के प्रश्न की जांच करें ।
संपादित करें :
आपकी टिप्पणी के अनुसार, आपको एक नया सम्मिलित करने Classऔर उसमें दो मौजूदा जोड़ने की आवश्यकता Studentsहै:
using (var context = new YourContext())
{
var mathClass= new Class { Name = "Math" };
Student student1 = context.Students.FirstOrDefault(s => s.Name == "Alice");
Student student2 = context.Students.FirstOrDefault(s => s.Name == "Bob");
mathClass.Students.Add(student1);
mathClass.Students.Add(student2);
context.AddToClasses(mathClass);
context.SaveChanges();
}
चूंकि दोनों छात्र पहले से ही डेटाबेस में हैं, इसलिए उन्हें सम्मिलित नहीं किया जाएगा, लेकिन चूंकि अब वे Studentsसंग्रह में हैं Class, इसलिए StudentClassतालिका में दो प्रविष्टियां डाली जाएंगी ।