0

Я использую .Net 4.5, сущность framework 5, база данных сначала. В моей базе данных есть таблица (многие-ко-многим). В этом примере можно сказать, что таблица «StudentsCourses»:Обновление edmx после добавления дополнительного столбца в таблицу соединений

Students 
    -PkStudentId 
    -Name 

Courses 
    -PkCourseId 
    -CourseNumber 

StudentsCourses 
    -FkStudentId 
    -FkCourseId 

Это работает просто отлично. «Генерация модели из базы данных» создает объект «Студент» с навигационным свойством для объекта «Курс». Но вот где проблема:

Мне нужно добавить еще один столбец в таблицу StudentsCourses. Позволяет просто вызвать этот столбец «CourseYear». Таким образом, наш узел таблица будет выглядеть следующим образом:

StudentsCourses 
    -FkStudentId 
    -FkCourseId 
    -CourseYear 

Итак, я добавил эту колонку в базу данных и побежал «Модель обновления из базы данных» на EDMX. Я бы ожидал увидеть объект, созданный для StudentCourses, с навигационным свойством как для студентов, так и для курсов. Но такой объект не создается. Я все еще вижу те же две таблицы (учащиеся & Курсы) с тем же навигационным свойством, что и раньше.

Я много читал и изучал, но на самом деле не нашел четкого ответа. Существует множество информации о кодах, которые я не могу применить к моему сценарию. Есть ли способ получить то, что мне нужно? Это так же просто, как добавление PkId в таблицу StudentCourses? Репликация SQL мешает мне это делать. Я думаю, что композит должен быть достаточным, но, возможно, EF нуждается в ПК, чтобы сделать это волшебство? Я немного прочитал о настройке отношений вручную, но не смог найти ничего, что говорило бы о моей конкретной ситуации. Возможно, я просто пропустил простой шаг в процессе обновления edmx из базы данных. Я делал это много раз, когда: добавление новых таблиц, добавление столбцов, удаление столбцов и т. Д. Я выполняю те же шаги, что и всегда, но, может быть, мне нужно сделать что-то другое в этом случае?

Спасибо заранее за любую помощь. Это очень ценно. Пожалуйста, дайте мне знать, поможет ли вам дополнительная информация.

ответ

0

Из того, что я собрал, кажется, что EF не будет генерировать модель для таблицы, у которой нет основного ключа.

0

Я немного поздно для этого, но у вас есть ответ в этой теме Updating Entity Framework Model after adding a field to a previous look up only table

Как говорится здесь, вы должны удалить отношения между студентами и курсы в дизайнере. Затем обновите свою модель из базы данных и убедитесь, что таблица StudentsCourses отмечена в ветке «Таблицы» вкладки «Добавить».

Смежные вопросы