EF Core 2.1类继承问题

时间:2018-08-15 14:39:10

标签: sql asp.net entity-framework razor asp.net-core

当我尝试应用迁移时,出现错误The property or navigation 'BankAccount' cannot be added to the entity type 'ClubTreasurer.Models.Person' because a property or navigation with the same name already exists on entity type 'ClubTreasurer.Models.Person'.

我尝试重新启动,清理和重建。删除并重新创建数据库,删除旧的迁移。

我以为TPH是问题所在,所以我为他们分配了所有自己的表:

modelBuilder.Entity<BankAccount>().ToTable("BankAccount");
modelBuilder.Entity<Person>().ToTable("Person");

我的2个班级和共享基类:

namespace ClubTreasurer.Models
{
    public class BankAccount : BaseModel
    {
        [Required]
        public string IBAN { get; set; }

        public string Name { get; set; }

        public int PersonId { get; set; }
        public Person Person { get; set; }

        public ICollection<BankTransaction> Transactions { get; set; }
    }
}

namespace ClubTreasurer.Models
{
    public class Person : BaseModel
    {
        [Display(Name = "First Name")]
        public string FirstName { get; set; }

        [Display(Name = "Last Name")]
        public string LastName { get; set; }

        [Display(Name = "Name")]
        public string FullName { get { return $"{FirstName} {LastName}"; } }

        [DataType(DataType.EmailAddress)]
        public string Email { get; set; }

        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:dd-MM-yyy}", ApplyFormatInEditMode = true)]
        public DateTime DOB { get; set; }

        public ICollection<BankAccount> BankAccounts { get; set; }
    }
}

namespace ClubTreasurer.Models
{
    public class BaseModel
    {
        public int ID { get; set; }

        public DateTime Created { get; set; }
        public DateTime LastModified { get; set; }

        [ForeignKey("LastModifiedBy")]
        public string LastModifiedById { get; set; }

        [ForeignKey("CreatedBy")]
        public string CreatedById { get; set; }

        public IdentityUser CreatedBy { get; set; }
        public IdentityUser LastModifiedBy { get; set; }
    }
}

我知道我可以删除继承并将阴影道具添加到每个类中,但这似乎很浪费。

编辑,我尝试删除继承并将审核属性移至每个类,但仍然收到相同的错误消息

后编辑后编辑似乎对于过去的迁移,我没有删除足够的内容。

0 个答案:

没有答案