Тип сущности [TType] нельзя добавить в модель, так как слабый тип сущности с таким именем уже существует - PullRequest
2 голосов
/ 12 марта 2019

После обновления 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());
        }
    }

, поэтому, когда я обновляю базу данных, я получаю ошибку: System.InvalidOperationException: Тип сущности 'EFError1.Models.SubAddress' не может быть добавлен кмодель, потому что слабый тип объекта с таким именем уже существуетenter image description here

Если я использую OwnsOne 2 раза, то все хорошо.Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...