Entity framework 4 EF code first-更改关系的生成列名
在引用SELF时,使用EF代码首先要控制泛型列的名称。尝试了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)如果在实体类中没有将外键列作为属性公开,则
[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; }
}