Я пытаюсь настроить некоторые свойства навигации с помощью некоторых моделей Entity Framework Code First. Я хотел бы, чтобы они выглядели как в этом примере:Entity Framework Code Первое свойство навигации через реляционную таблицу
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. Экземпляр студенческого класса автоматически ссылался бы на все эти курсы студентов, и наоборот, экземпляр класса курса автоматически ссылался бы на всех его учеников. И экземпляр класса StudentCourses автоматически ссылается на его ученик и курс. Но когда я пытаюсь обновить-базу данных, отношения, похоже, не интерпретируются должным образом. Здесь что-то не хватает? Возможно, некоторые настройки необходимо выполнить в классе контекста? Большинство примеров свойств навигации просто показывают свойства навигации по принципу «один ко многим».
Ах, поэтому EF абстрагирует от этой таблицы полностью от модели. Я думал, что мне нужен класс для таблицы соединений EF, но я полагаю, что свойства навигации делают это ненужным. – Sneakster
Да, EF создаст для вас таблицу соединений. Вам не нужно делать это вручную. – Sampath