我首先有一个大型 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);
}
}
关于c# - Entity Framework 代码优先 - 列 ID 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36135038/