Обновление EDMX сейф способ:
Как вы обнаружили, обновление из базы данных не всегда корректно изменяет существующие свойства.
Из нашего повседневного использования обновления EDMX (100 обновлений за 24 месяца) я бы порекомендовал следующую последовательность для обновления EDMX.
Удалить существующую модель и затем обновить:
- Открыть конструктор EDMX
- Ctrl-A, чтобы выбрать все
- Клавиша удаления для удаления всех моделей в конструкторе
- ВАЖНО: Не сохраняйте EDMX на этом этапе, если вы используете TFS для управления источником! *
- Теперь щелкните правой кнопкой мыши и выберите «Обновить модель из базы данных», чтобы заново воссоздать всю модель.
- Перестройка проекта для распространения изменений
Это, очевидно, приведет к потере любых ручных настроек, которые вы внесли в модель, но по возможности следует избегать ручных настроек. Это делает весь процесс воспроизводимым в любое время (и это хорошо).
Важные примечания:
- Если у вас включено автосохранение в Visual Studio, вам нужно быстро выбрать обновление (шаг 5 выше), чтобы избежать автосохранения при сохранении всего.
- Если вы используете TFS для управления исходным кодом и сохраняете EDMX после его очистки, TFS пометит все сгенерированные файлы как «удаленные», и повторное обновление EDMX может привести к отключению файлов , которых нет в контроль источника! .
- Этот процесс не обновляет хранимые процедуры. Кроме того, я обнаружил, что обновление EDMX также не будет обновлять хранимые процедуры, в которых изменился только тип возвращаемого значения (все еще актуальный на момент EF 6.1.1).
Дополнительная рекомендация:
Храните ваш EDMX в отдельной библиотеке. Это также становится отличным местом для добавления дополнительных файлов TT и частичных классов (например, для расширения функций моделей EDMX). Я также размещаю любые методы расширения для контекста базы данных в этой библиотеке. Файлы migration
также генерируются в библиотеке, и все это прекрасно хранится.
Обновление за апрель 2015 года
Последний выпуск 4 Visual Studio 2013, по-видимому, решил многие проблемы TFS. Теперь мы видим, что Visual Studio извлекает сгенерированные файлы, а затем возвращает их, если они не изменились. Вышеуказанные шаги по-прежнему являются наиболее безопасным подходом.
Обновление сентябрь 2015
При использовании последней версии 5 VS2013, у нас все еще есть проблемы, если при обновлении EDMX происходит сохранение. Вы все еще можете оказаться в состоянии, когда ожидающие удаления приводят к тому, что ваши tt
файлы будут удалены из системы контроля версий во время обновления. Секрет заключается в быстром обновлении между шагами 4 и 5! :)