Связь «многие ко многим» с таблицей соединений в Entity Framework?

Я пытаюсь создать отношение "многие ко многим" в Entity Framework (сначала код), согласно следующему сообщению: Дизайн базы данных для ограниченного числа вариантов в MVC и Entity Framework ?

Однако я не могу заставить его работать должным образом, и я уверен, что ' я делаю что-то очень простое неправильно. Вот диаграмма, которую я не получил в результате моих попыток:

enter image description here

Смысл соединительной таблицы в том, что мне нужно иметь дополнительное свойство, Уровень, во взаимосвязи, поэтому я не могу просто установить прямую связь между Консультантом и Программой . Я вручную добавил сущность ConsultantProgramLink в конструктор, а затем добавил ассоциации к программе и консультанту соответственно, выбрав для каждого из них FK, а затем сделал их оба первичными ключами. Но когда я делаю это так, это работает не так, как я ожидал:

Если бы я сделал прямую связь между Консультантом и Программой, я мог бы сослаться, скажем, на Консультант.Программы в моем коде. Но сейчас это не работает с соединительным столом. Есть ли способ исправить это, или мне всегда нужно проходить через участок перекрестка (Консультант. КонсультантПрограммаСсылка.Программы)? В любом случае, даже если я попытаюсь пройти через свойство junction, это не поможет. Я могу использовать Consultant.ConsultantProgramLink в своем коде, но другая точка не дает мне свойства навигации Programs (которое по какой-то причине также стало просто Program, почему? Могу я просто переименовать их, если я в конечном итоге получу к ним доступ?) .

Так что я делаю не так? Почему я не могу получить доступ к свойствам через точечную нотацию в моем коде?

7
задан Community 23 May 2017 в 11:53
поделиться