Использование EntityFramework Core 2.2 для заполнения данных, имеющих ключ, сгенерированный базой данных

Я использую EF Core 2.2, использую код в первую очередь.

У меня есть класс сущности:

public class Client
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Key]
    public int ClientID { get; set; }
    public string Name { get; set; }
}

и я отправляю свои данные так:

var client = new Client { Name = "TestClient"};
modelBuilder.Entity<Client>().HasData(client);

Но я получаю сообщение об ошибке при попытке добавить миграцию:

Начальный объект для типа объекта "Клиент" не может быть добавлен, поскольку для свойства "ClientID" требуется ненулевое значение. Рассмотрите возможность предоставления отрицательного значения, чтобы избежать коллизий с не начальными данными.

ClientID должен быть сгенерирован автоматически, и я не хочу его указывать. Есть ли обходной путь к этому или эта функциональность просто еще не реализована?

1 ответ

Решение

С начальными данными, вы должны указать ключ. В противном случае он не будет знать, какая запись должна быть там. Это задокументировано здесь.

Другие вопросы по тегам