0

使用 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)

4

1 回答 1

1

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

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

我假设父级是可选的(ParentID是 DB 表中的一个可为空的列),因为我想,树中应该有一些“根”,即一个不再有父级的情节,因此至少对于这个插曲ParentID栏目必NULL

于 2012-08-04T19:44:50.763 回答