Varlıklar (veya nesneler) açısından Class
, bir koleksiyonu olan Students
bir Student
nesneye ve bir koleksiyonu olan bir nesneye sahipsiniz Classes
. Senin bu yana StudentClass
tablosu 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, Class
nesneyi, Student
nesneleri oluşturun, öğrencileri sınıf Students
koleksiyonuna ekleyin, Class
nesneyi 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, Class
tabloda bir giriş, tabloda iki giriş Student
ve StudentClass
bunları 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 Class
tane eklemeniz Students
ve 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 Students
koleksiyonda oldukları Class
için StudentClass
tabloya iki giriş eklenecek .