c# - Entity Framework 代码优先 - 列 ID 无效

标签 c# asp.net ef-code-first entity-framework-6

我首先有一个大型 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/

相关文章:

c# - 无法在 FormView 的 <EditItemTemplate> 中显示内容

asp.net - 从VS发布Web.Release.config到IIS,web部署,一键发布

c# - MSTest期间的终结器中的NullReferenceException

c# - 为什么我的应用程序不读取我的 MyApplication.dll.config 文件?

c# - 我们如何从XMLSerializer函数传递多个对象

c# - 用于解析 C/C++ 函数声明的正则表达式

c# - iTextSharp : The process cannot access the file. 文件流似乎已关闭

entity-framework-4 - 如何定义 DatabaseGenerated.Computed 应该计算什么?

asp.net - 使用 EF Code First 添加 SqlMembership 表

c# - Entity Framework 、Fluent API 映射,是否应该在 OnModelCreating 以外的地方完成?