Code First外键名称有重复的表名 - 如何显式设置?

时间:2011-05-09 13:34:54

标签: mapping ef-code-first entity-framework-4.1

我有2张桌子: 1)家长 2)孩子

在codefirst中,我有以下定义:

public class Parent 
{
    public int ParentId { get; set; }
    public ICollection<Child> child { get; set; }
}

但是在db中,子表定义了以下外键:

ParentParentId(FK,int,NULL)

如何确保它只在外键中指定ParentId?我是否需要使用流畅配置显式设置父键?

1 个答案:

答案 0 :(得分:1)

是的,您必须在子实体中包含外键属性:

public class Child
{
    public int ChildId { get; set; }
    public int ParentId { get; set; } // FK
    public virtual Parent { get; set; }
}

或者您必须使用流畅的API重命名该列:

modelBuilder.Entity<Child>()
            .HasRequired(c => c.Parent)
            .WithMany(p => p.Childs)
            .Map(m => m.MapKey("ParentId"));