实体框架中的一对多映射与流畅的api

时间:2014-04-11 08:56:37

标签: c# entity-framework ef-code-first mapping relationship

我找到了很多这方面的例子,但没有人适合我...

我有一个主要课程:

public class Class1
{
    public int id { get; set; }
    public string desc { get; set; } 
    public virtual Class2 class2 {get; set;}
}

和第二节课:

public class Class2
{
    public int id { get; set; }
    public string desc { get; set; } 
}

我以这种方式映射Class1

public class Class1Map : EntityTypeConfiguration<Class1>
{
    public Class1Map()
    {
        // Primary Key
        this.HasKey(t => t.Id);

        // Table & Column Mappings
        this.ToTable("Class1TableName");
        this.Property(t => t.id).HasColumnName("IdColumnName");
        this.Property(t => t.desc).HasColumnName("DescColumName");
    }
}

这很好用

但我尝试了很多方法将Class2的{​​{1}}属性绑定到Class1的{​​{1}}字段,作为与IdClass2ColumnName Class1Tablename相关联的外键表没有成功。

如您所见,我不想在IdColumnName

中添加Class2属性

对于测试我尝试没有成功:

IdClass2

1 个答案:

答案 0 :(得分:0)

解决了,代码迁移出了问题,我忘了更新代码迁移类,所以EF使用旧的列名。

正确的映射语法是

this.HasRequired(t => t.class2)
    .WithRequiredDependent()
    .Map(m => m.MapKey("IdClass2ColumnName "));