Мне нужно изменить структуру (добавить несколько столбцов и изменить одну из существующих) базы данных (я внес некоторые изменения в «Модели» моего проекта WebAPI). Есть ли простой способ сделать это в Visual Studio 2013?Как обновить структуру базы данных с помощью Entity Framework Code Сначала без потери всех данных?
Как обновить структуру базы данных с помощью Entity Framework Code Сначала без потери всех данных?
ответ
Вы можете использовать Entity Framework Migrations
и запустить команду update-database
, чтобы сгенерировать скрипт T-SQL, который можно запустить вручную. Это дает вам немного больше контроля над изменениями, применяемыми к БД. Кроме того, вы можете доверять EF, чтобы сделать это за вас. Вы можете найти все необходимые эф миграции команд здесь: http://msdn.microsoft.com/en-us/data/jj591621.aspx
EDIT Ссылку я предоставил бы раздел под названием Получение сценария SQL. Для того, чтобы сделать это для миграции, просто запустите следующую команду:
Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: yourmigrationname
Вы должны заменить «yourmigrationname» с именем вашей миграции и при запуске этого, вы получите новую вкладку с только SQL-скрипт. Затем вы можете сохранить его или запустить.
ОК, я набрал базу данных обновлений. Этот «скрипт T-SQL», о котором вы говорили, является «[somenumbers] _Initial1.cs», который появился в папке «Миграции»? Как я могу запустить его? – Piotrek
Я думал, что добавление-миграция «mig_name_name» заключается в том, как сгенерировать изменения после обновления вашей модели. Затем вы выполняете обновление базы данных -verbose с фиксацией этих изменений в базе данных. – jwize
Поскольку вы прокомментировали, как я это сделал, я отправлю его как ответ, чтобы уточнить.
Я вношу изменения в MSSQL-сервер, который мне нужен. Я могу добавлять столбцы, изменять имена столбцов и даже удалять столбцы, если это необходимо.
Затем в моей модели (.edmx) я удаляю таблицу, которую я только что обновил на сервере MSSQL. Как только я это сделаю, я затем щелкните правой кнопкой мыши в открытом пространстве и нажмите «Обновить модель из базы данных». Затем я выбираю свою таблицу или таблицы, когда выбрана вкладка «Добавить». Я обнаружил, что это лучше всего работает, поскольку «Refresh» никогда не работало для меня. После того, как вы нажмете кнопку «Готово», ваша модель теперь обновляется с последними столбцами из таблицы, которую вы изменили.
Надеюсь, это поможет.
- 1. Entity Framework Code Сначала создайте базу данных
- 2. Entity Framework Code Сначала определяющий тип данных
- 3. Entity Framework Code Сначала без app.config
- 4. Entity Framework Code Сначала из базы данных + MVC
- 5. Как обновить активность без потери всех данных?
- 6. Entity Framework без базы данных
- 7. Используйте Entity Framework Code сначала с любой базой данных
- 8. Как добавить таблицу в существующую базу данных без потери данных в Entity-framework Code first 5.0?
- 9. Entity Framework Code Сначала усечение десятичных знаков
- 10. Entity Framework - обновить без потери изменений
- 11. Добавить триггер базы данных с Entity Framework Code Первые миграции
- 12. База данных Entity Framework Сначала для плохо написанной базы данных
- 13. Аннотации данных с Entity Framework 5.0 (сначала база данных)
- 14. Перемещение базы данных Entity Framework
- 15. Как обновить схему базы данных без потери исходных данных
- 16. Удалить localdb в Entity Framework Code Сначала
- 17. Переключение с базы данных Entity Framework Сначала на первый код
- 18. Entity Framework - обновить объекты из базы данных
- 19. Обработка связанных данных при использовании Entity Framework Code Сначала
- 20. Ошибка базы данных базы данных - Entity Framework
- 21. Сопоставление столбцов базы данных базы данных Entity Framework
- 22. Entity Framework Code Сначала автоматическая миграция в базу данных Azure
- 23. Entity Framework Association без базы данных FK
- 24. Отношения в Entity Framework Code Сначала
- 25. Код Entity Framework сначала вокруг существующей базы данных
- 26. Конвертер базы данных SQL Server в Entity Framework Сначала
- 27. Встроенная поддержка в Entity Framework для автоматической базы данных обновлений программно? (Без потери данных)
- 28. Обновить схему базы данных без сброса данных?
- 29. Entity Framework Code Сначала настройте операции CRUD
- 30. База данных Entity Framework Сначала с правильным использованием данных Anotations
Все данные теряются при обновлении схемы? –
Вам нужно предоставить гораздо более подробную информацию о вашей проблеме. Поведение по умолчанию с использованием Code First должно состоять в том, чтобы сохранить ваши таблицы и данные. Возможно, если вы используете автоматическую миграцию и внесли некоторые изменения, которые нельзя применить, не отбрасывая и не считывая таблицу, то Entity Framework делает это для миграции, но опять же нам понадобится намного больше информации чтобы сказать вам что-нибудь окончательно. –
Используете ли вы класс Initializer, который обрабатывает данные? – markpsmith