संस्थाओं (या वस्तुओं) के संदर्भ में आपके पास एक ऐसी 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
तालिका में दो प्रविष्टियां डाली जाएंगी ।