DbContext с изменениями базы данных - PullRequest
1 голос
/ 30 марта 2012

Я сейчас использую Entity Framework 4.3 DbContext для создания объектов базы данных, мой вопрос: когда я изменяю базу данных, как я могу гарантировать, что автоматически сгенерированный код обновляется?где EF для хранения правил базы данных, например, разрешить ноль от Нет до Да.Когда я использую функцию Обновление модели из базы данных из файла .EDMX , кажется, что он не обновляет правила разрешения пустых таблиц.Как я могу решить проблему изменения базы данных.Где код для хранения всех этих правил.

Сообщение об ошибке:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

Но когда я удаляю все автоматически сгенерированные EF-файлы и заново генерирую их, кажется, чтоправила обновлены.Но я подумал, что это не очень хороший способ решить проблему в период разработки.

1 Ответ

1 голос
/ 30 марта 2012

Когда я использую функцию Обновить модель из базы данных из файла .EDMX, она Кажется, не обновляет правила allow null таблицы.

Это правильное поведение. Файл EDMX состоит из трех частей:

  • определение базы данных (отображается только в браузере модели)
  • определение класса (это то, что вы видите в конструкторе)
  • отображение между определениями (это то, что вы видите в деталях отображения)

Когда вы используете обновление из базы данных, конструктор полностью заменит определение базы данных и добавит новые таблицы или столбцы в определения сопоставлений и классов. Он никогда не будет пытаться удалить или изменить что-либо. Причина этого заключается в том, что определение класса настраивается. Если вы вносите свои изменения, вы не хотите, чтобы дизайнер их трогал. Обновление из базы данных имеет только фактическое состояние - оно не знает, какие изменения были внесены вами и какие изменения вызваны изменением базы данных, поэтому просто используйте лучший способ - ничего не изменяйте и позволяйте исправлять несоответствия.

...