Первая миграция кода EF Core 3: лучший метод разделения таблицы SQL? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть проект 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 каким-то образом создать свою собственную миграцию на основе моих команд?

...