HasData не работает с зависимыми свойствами
Есть моделька User, которая внутри себя имеет зависимое свойство Phone.
Это все таким образом конфигурируется в UserConfiguration : IEntityTypeConfiguration<User>
в методе:
Configure(EntityTypeBuilder<User> builder)
builder.OwnsOne(x => x.Phone);
Вроде бы все норм и база успешно создается => косяков в настройках у меня нету.
Но если я хочу задать какие-то стартовые значения в этой конфигурации для User через builder.HasData, то ловлю ошибку:
The seed entity for entity type 'User' cannot be added because another seed entity with the same key value for {'Id'} has already been added. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.
Как я понимаю- это из-за зависимого свойства.
Неужели так делать не правильно:
builder.HasData(new User()
{
Id = 0,
Phone = new PhoneNumber()
{
Number = "12354",
IsConfirmed = true
}
});
? Как тогда делать иначе?
Ответы (1 шт):
Попробуйте поставить Id отличный от нуля (значения по умолчанию):
builder.HasData(new User()
{
Id = 1,
Phone = new PhoneNumber()
{
Number = "12354",
IsConfirmed = true
}
});
Ответ подсмотрен здесь
Но если обязательно нужен Id = 0, то можно посмотреть другой ответ по ссылке, там нашли как обойти ограничение, написав своё расширение.