Добавление первичного ключа в существующую таблицу с использованием Entity Framework Core - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть существующая, заполненная таблица. Используя миграцию EF Core, я хочу создать сгенерированный в БД первичный ключ.

Вот мой свободный API:

modelBuilder.Entity<MyTable>()
    .HasKey(a => a.Id);

modelBuilder.Entity<MyTable>()
    .Property(p => p.Id)
    .ValueGeneratedOnAdd();

Проблема, с которой я сталкиваюсь, заключается в том, что при запуске миграции я получить ошибку, поскольку в существующих строках таблицы нет заполненного этого (нового) поля:

The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.MyTable' and the index name 'PK_MyTable'. The duplicate key value is ().

Есть ли способ использовать значение по умолчанию для ретроспективного заполнения этой таблицы первичными ключами? В качестве альтернативы, есть ли другой способ заполнить это поле ретроспективно?

1 Ответ

0 голосов
/ 11 февраля 2020

В качестве альтернативы, есть ли другой способ заполнить это поле ретроспективно?

Да. Но не через EF. Вам нужно будет очистить базу данных вручную, прежде чем EF сможет начать управлять схемой.

...