使用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
)
答案 0 :(得分:1)
如果您没有在实体类中公开外键列作为属性,则只能使用Fluent API定义列名:
modelBuilder.Entity<Episodes>()
.HasMany(e => e.Children)
.WithOptional()
.Map(m => m.MapKey("ParentID"));
我假设父是可选的(ParentID
是数据库表中可以为空的列),因为,我想,树中应该有一些“根”,即一个没有家长,因此至少在这一集中,ParentID
列必须是NULL
。