使用EF6 Code-First EntityTypeConfiguration指定父子连接表的名称

时间:2013-11-20 18:21:32

标签: sql entity-framework c#-4.0 many-to-many

我首先使用代码来创建我的数据库,但必须匹配给定的模式。

我有一个Org实体(这里简化)一个Org可以有很多org类型的子项

public class Org 
{
  public int Id {get;set;}
  public virtual IList<Org> Children{get;set;}
}

我想生成一个Org表和一个名为OrgRelationship的表,它有两列ParentId和ChildId。数据以这种格式提供给我们,但我真的很喜欢EF将表扩展到这个模型......

是否可以仅使用模型构建器上的EntityTypeConfiguration生成此连接表?我是否必须拥有OrgRelationship课程?

这似乎没有削减它

public class OrgMap : EntityTypeConfiguration<Org>
{
    public OrgMap()
    {
        HasKey(n => n.Id);
        HasMany(n => n.Children);
    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用以下调用配置连接表。

HasMany(n => n.Children).WithMany().Map(
    m => m.ToTable("OrgRelationship").MapLeftKey("ParentId").MapRightKey("ChildId"));