Entity framework 4 EF code first-更改关系的生成列名

Entity framework 4 EF code first-更改关系的生成列名,entity-framework-4,Entity Framework 4,在引用SELF时,使用EF代码首先要控制泛型列的名称。尝试了[ForeignKey]和[Column]属性[Column]不起作用,并且[ForeignKey]强制建立似乎会导致问题的关系。我使用了[ForeignKey]属性来设置连接到此类/表的另一个类/表中的列的名称 有 公共类剧集 { 公共长ID{get;set;} //……其他财产 公共列表子项{get;set;} } 想要一个表(ID,…,ParentID)-获取一个表(ID,…,插曲ID)如果在实体类中没有将外键列作为属性公开,则

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

公共类剧集
{
公共长ID{get;set;}
//……其他财产
公共列表子项{get;set;}
}

想要一个表(
ID
,…,
ParentID
)-获取一个表(
ID
,…,
插曲ID

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

modelBuilder.Entity()
.HasMany(e=>e.Children)
.WithOptional()
.Map(m=>m.MapKey(“ParentID”);

我假设父项是可选的(
ParentID
是DB表中的一个可空列),因为我猜树中应该有一些“根”,即不再有父项的插曲,因此,至少在本期节目中,
ParentID
列必须是
NULL

答案看起来不错-但当我这样做时-在EF创建数据库“Sequence contains no elements”(序列不包含元素)时,会出现运行时错误@西蒙·汤普森:你能给我看一下引发这个异常的代码和代码行吗?一定有本·格雷姆林的名字在哪里——它现在正在工作。谢谢你的回答
public class Episodes
{
    public long ID {get; set;}
    // ... other properties

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