EF代码优先 - 更改生成的关系列名称

时间:2012-08-04 19:09:10

标签: entity-framework-4

使用EF代码首先要控制引用列的名称WHEN REFERENCING SELF。尝试了[ForeignKey][Column]属性。 [Column]不起作用,[ForeignKey]强制建立似乎导致问题的关系。我使用了[ForeignKey]属性来设置与此连接的另一个类/表中列的名称。

有无

public class Episodes
{
    public long ID {get; set;}
    // ... other properties

    public List<Episodes> Children { get; set; }
}

想要一张桌子(ID,...,ParentID) - 获取一张桌子(ID,...,Episode_ID

1 个答案:

答案 0 :(得分:1)

如果您没有在实体类中公开外键列作为属性,则只能使用Fluent API定义列名:

modelBuilder.Entity<Episodes>()
    .HasMany(e => e.Children)
    .WithOptional()
    .Map(m => m.MapKey("ParentID"));

我假设父是可选的(ParentID是数据库表中可以为空的列),因为,我想,树中应该有一些“根”,即一个没有家长,因此至少在这一集中,ParentID列必须是NULL