#c# #.net-core #ef-core-2.2
#c# #.net-core #ef-core-2.2
Вопрос:
После обновления ef-core с версии 2.1 до версии 2.2 (2.2.2) я начал получать ошибку при выполнении миграции. Я создал тестовый проект, вот мой код:
public class Root
{
public int Id { get; set; }
public MainAddress Address1 { get; set; }
public MainAddress Address2 { get; set; }
}
public class MainAddress
{
public int Id { get; set; }
public string Name { get; set; }
public SubAddress SubAddress { get; set; }
}
public class SubAddress
{
public int Id { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public SubSubAddress SubSubAddress { get; set; }
}
public class SubSubAddress
{
public int Id { get; set; }
public string Text { get; set; }
}
public class RootConfig : IEntityTypeConfiguration<Root>
{
public void Configure(EntityTypeBuilder<Root> builder)
{
builder.ToTable("Roots");
builder.HasKey(it => it.Id);
builder.OwnsOne(root => root.Address1, address =>
{
address.OwnsOne(a => a.SubAddress, subAddress =>
{
subAddress.OwnsOne(it => it.SubSubAddress);
});
});
builder.OwnsOne(root => root.Address2, address =>
{
address.OwnsOne(a => a.SubAddress, subAddress =>
{
subAddress.OwnsOne(it => it.SubSubAddress);
});
});
}
}
public class TestContext : DbContext
{
public TestContext(DbContextOptions<TestContext> context) : base(context)
{
}
public DbSet<Root> Roots { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfiguration(new RootConfig());
}
}
итак, когда я обновляю базу данных, я получаю ошибку:
Система.Исключение InvalidOperationException: тип объекта ‘EFError1.Модели.SubAddress’ не может быть добавлен в модель, поскольку слабый тип объекта с тем же именем уже существует.
Если я использую OwnsOne, вложенный 2 раза — тогда все хорошо. Есть идея?
Комментарии:
1. Я смог дублировать его даже в последней версии 2.2.3. По-видимому, ошибка EF Core, я бы посоветовал сообщить об этом в их службу отслеживания проблем.
2. да, я уже сделал. github.com/aspnet/EntityFrameworkCore/issues/14994