Entity Framework Code First - 列 ID 无效

Entity Framework Code First - Invalid column ID

我首先有一个很大的 ASP.NET MVC 应用程序数据库,然后 Entity Framework。它首先与 db 一起工作。我想先将应用程序更改为代码。结果我有错误:

{"Invalid column name 'ID'"}

我也有一些继承类。

所有外键映射到 OnModelCreating 方法并映射到 类 作为 [ForeignKey("class name")] 属性

这是我的代码的一部分:

[Table("Member")]
public partial class Member
{
    public Member() {}

    public int ID { get; set; }

    [ForeignKey("Seed1")]
    public int? SeedID { get; set; }

    public virtual Seed Seed1 { get; set; }

    ...
}

[Table("Seed")]
public partial class Seed : Member
{
    public Seed()
    {
        Members = new HashSet<Member>();
    }

    public int Locale { get; set; }

    public virtual ICollection<Member> Members { get; set; }

    ...
}

解决方法是:

[Table("Member")]
public partial class Member
{
    public Member() {}

    public virtual int ID { get; set; }

    public int? SeedID { get; set; }

    public virtual Seed Seed1 { get; set; }

    ...
}


[Table("Seed")]
public partial class Seed : Member
{
    public Seed()
    {
        Members = new HashSet<Member>();
    }

    public override int ID
    {
        get { return MemberID; }
        set { MemberID = value; }
    }

    [NotMapped]
    public int MemberID { get; set; }

    public int Locale { get; set; }
}

public class SeedMap : EntityTypeConfiguration<Seed>
{
    public SeedMap()
    {
        HasKey(c => c.ID);
        Property(c => c.ID)
            .HasColumnName("MemberID")
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

        HasMany(e => e.Members)
            .WithOptional(e => e.Seed1)
            .HasForeignKey(e => e.SeedID);
    }
}