엔터티 (또는 개체)의 관점 Class
에서 컬렉션이 Students
있는 Student
개체 와 컬렉션이 있는 개체가 있습니다 Classes
. 당신 때문에 StudentClass
테이블에만 ID와 별도의 정보를 포함, 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
.NET 컬렉션에 있으므로 Class
두 항목이 StudentClass
테이블에 삽입됩니다 .