У меня есть проект ASP. NET Core, использующий EF Core 3 (сначала код), поддерживаемый MS SQL Server. Я решил, что хочу разделить некоторые столбцы из одной конкретной таблицы в отдельную таблицу. Я сделал это, введя команду SQL непосредственно в базу данных:
SELECT DISTINCT
identity(int,1,1) as Id,
UserId,
Field1ToMove,
Field2TomOve
INTO NewTable
FROM OldTable
, а затем команду SQL для удаления столбцов из OldTable, а также команды для ручного удаления ограничений и индексов. Затем я обновил свою модель, чтобы отразить новую структуру таблиц.
Все это работало нормально, но я задаю вопрос: есть ли способ, которым я мог бы использовать первые миграции кода для достижения этой цели, при этом достигая своей цели копирования а столбцы не сбрасывают данные? В моем случае, я думаю, что теперь мне нужно удалить все миграции до этого момента и начать создавать новые миграции с нуля. Но если бы я просто удалил поля из класса модели OldTable и поместил их в NewTable, данные не были бы перенесены. Возможно, я мог бы вместо непосредственного ввода команд SQL каким-то образом создать свою собственную миграцию на основе моих команд?