일부 Entity Framework 코드 첫 번째 모델에서 일부 탐색 속성을 설정하려고합니다. 이 예제처럼 보이게하고 싶습니다.Entity Framework 코드 관계형 테이블을 통한 첫 번째 탐색 속성
public class Course
{
[Key]
public int CourseId { get; set; }
public string CourseName { get; set; }
public virtual ICollection<Student> Students { get; set; }
}
public class Student
{
[Key]
public int StudentId { get; set; }
public string StudentName { get; set; }
public virtual ICollection<Course> Courses { get; set; }
}
public class StudentCourses
{
[Key, Column(Order = 0)]
public int StudentId { get; set; }
public virtual Student Student { get; set; }
[Key, Column(Order = 1)]
public int CourseId { get; set; }
public virtual Course Course { get; set; }
}
학생과 코스 관계가 StudentCourses 테이블에 설정됩니다. 학생 클래스의 인스턴스는 자동으로 모든 학생 코스를 참조하며, 그 반대로 Course 클래스 인스턴스는 모든 학생을 자동으로 참조합니다. 그리고 StudentCourses 클래스의 인스턴스는 자동으로 Student 및 Course를 참조합니다. 그러나 Update-Database를 시도 할 때 관계가 제대로 해석되지 않는 것 같습니다. 내가 여기서 누락 된 것이 있습니까? 아마도 컨텍스트 클래스에서 구성해야 할 필요가 있을까요? 탐색 속성의 대부분의 예제는 일대 다 관계 탐색 속성 만 표시합니다.
아, 그래서 EF는 그 테이블을 모델에서 완전히 추상화합니다. 나는 EF가 생성하는 접합 테이블에 대한 클래스가 필요할 것이라고 생각했지만 탐색 속성을 사용하면 불필요하다고 생각합니다. – Sneakster
예, EF가 자동으로 접합 테이블을 작성합니다. 수동으로 할 필요는 없습니다. – Sampath