Этот фрагмент кода успешно создает отношение many-many с явной таблицей Junction, в которой есть дополнительные данные.
ПРОБЛЕМА: Я хочу получить доступ к курсам от Студента и наоборот, (следовательно, прокомментированное virtual свойство. Но если я раскомментирую его, оно вызовет ошибку (см. Ниже))
Если я не создаю явно таблицу соединений(без дополнительных данных), виртуальное ключевое слово работает, хотя EF создает таблицу соединений по соглашению.
ВОПРОС:
Как я могу сделать доступ к Курсам для студентов без прохождения регистрации?Или это невозможно?Если это невозможно, то каков наилучший способ сделать это?
( новичок в EF и C # )
public class Student
{
[Key]
public int StudentId { get; set; }
public string StudentName { get; set; }
//public virtual Course Courses { get; set; }
}
public class Course
{
[Key]
public int CourseId { get; set; }
public string CourseName { get; set; }
//public virtual Student Students { get; set; }
}
public class Enrollment
{
[Key]
public int EnrollmentId { get; set; }
public Student Student { get; set; }
public Course Course { get; set; }
public string Grade { get; set; }
}
public class ManyMany : DbContext, IContext
{
public DbSet<Student> Students { get; set; }
public DbSet<Course> Courses { get; set; }
public DbSet<Enrollment> Enrollments { get; set; }
public void Run()
{
Database.SetInitializer(new DropCreateDatabaseAlways<ManyMany1>());
this.Courses.Add(new Course() {CourseName = "English"});
this.SaveChanges();
}
}
КОГДА Я ОБЯЗАТЕЛЬНОpublic virtual ...
ОШИБКА: "Невозможно определить основной конец ассоциации между типами 'EF.Course' и 'EF.Student'. Основной конец этой ассоциации должен быть явносконфигурирован с использованием API-интерфейса связи или аннотаций данных. "