Я читаю эту документацию и заметил следующее:
Учебное пособие: создание сложной модели данных - ASP. NET MVC с EF Core
Entity Framework не требует, чтобы вы добавляли свойство внешнего ключа в модель данных, когда у вас есть свойство навигации для связанной сущности. EF автоматически создает внешние ключи в базе данных там, где они нужны, и создает для них теневые свойства. Но наличие внешнего ключа в модели данных может сделать обновления проще и эффективнее. Например, когда вы выбираете сущность курса для редактирования, сущность Department будет нулевой, если вы не загрузите ее, поэтому при обновлении сущности курса вам придется сначала выбрать сущность Department. Когда свойство свойства внешнего ключа DepartmentID включено в модель данных, вам не нужно извлекать сущность Department перед обновлением.
На мой взгляд, это выглядит грязно и не поддается объекту EF , поскольку в каждом классе необходимо поддерживать отдельный внешний ключ.
Я заметил, что IntelliSense показывает полный объект, если вы не указали внешний ключ, так как свойство навигации уже существует. Я предполагаю, что это не может быть использовано для обновления этого поля.
PopulateDepartmentsDropDownList(course.Departments.Id)
Эта функция из раздела связанных с обновлением данных .
Мои вопросы были бы, это лучшая практика, каковы плюсы и минусы и какие существуют альтернативные методы для обновления внешнего ключа без явного указания внешнего ключа в классе?