#c# #sql-server #entity-framework-6
#c# #sql-сервер #entity-framework-6
Вопрос:
У меня есть существующая база данных с данными в ней. Существует (много) файлов sql, которые вставляют набор начальных данных.
Проект реорганизуется для подхода «сначала код», поэтому я не хочу перемещать инициализирующие sql-файлы в инициализатор контекста.
Есть ли способ добиться этого с помощью инструмента или скрипта, без необходимости вручную повторно вводить все файлы sql?
Ответ №1:
Вы можете использовать миграцию EF для выполнения такого рода рефакторизации.
И при миграции вы можете выполнять пользовательские сценарии SQL. Вот пример: https://entityframeworkcore.com/knowledge-base/46638380/execute-custom-sql-script-as-part-of-entity-framework-migration
Комментарии:
1. Переносит ли миграция записи тоже или просто вносит структурные изменения? Столбцы не меняются ни в каких таблицах, мне просто нужно переместить начальные данные в инициализатор контекста.
2. Вы можете использовать миграцию без изменения какой-либо структуры базы данных. Вы можете просто использовать migrationBuilder.Sql («Ваш код SQL») для вставки / обновления / удаления данных.