Varlıklar (veya nesneler) açısından Class, bir koleksiyonu olan Studentsbir Studentnesneye ve bir koleksiyonu olan bir nesneye sahipsiniz Classes. Senin bu yana StudentClasstablosu yalnızca kimlikleri ve hiçbir ekstra bilgiler içerir, EF katılmadan tablo için bir varlık oluşturmaz. Doğru davranış budur ve beklediğiniz de budur.
Şimdi, ekleme veya güncelleme yaparken nesneler açısından düşünmeye çalışın. Örneğin, iki öğrencili bir sınıf eklemek istiyorsanız, Classnesneyi, Studentnesneleri oluşturun, öğrencileri sınıf Studentskoleksiyonuna ekleyin, Classnesneyi bağlama ekleyin ve şunu arayın 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();
}
Bu, Classtabloda bir giriş, tabloda iki giriş Studentve StudentClassbunları birbirine bağlayan tabloda iki giriş oluşturacaktır .
Temelde güncellemeler için aynısını yaparsınız. Sadece verileri alın, koleksiyonlardan nesne ekleyip çıkararak grafiği değiştirin, arayın SaveChanges. Ayrıntılar için bu benzer soruyu kontrol edin .
Düzenle :
Yorumunuza göre, yeni bir Classtane eklemeniz Studentsve ona mevcut iki tane eklemeniz gerekir:
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();
}
Her iki öğrenci de zaten veri tabanında olduğu için eklenmeyecekler, ancak artık Studentskoleksiyonda oldukları Classiçin StudentClasstabloya iki giriş eklenecek .