如何在Entity Framework中为同一个表配置导航属性?

时间:2015-01-15 17:08:38

标签: c# entity-framework ef-code-first navigation-properties ef-fluent-api

如何使用流畅配置配置实体框架,其行为方式与使用属性执行此操作的方式相同:

public class Product
{
    public int? ParentId { get; set; }
    [ForeignKey("ParentId")]
    public virtual Product Parent { get; set; }
}

1 个答案:

答案 0 :(得分:1)

假设您要创建自引用实体,我假设您有一个Product类,如下所示:

public class Product
{
    public int Id { get; set; }

    public int? ParentId { get; set; }

    public virtual Product Parent { get; set; }
}

在上下文中,您需要实现OnModelCreating方法才能配置自引用。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
  modelBuilder.Entity<Product>().
       HasOptional(e => e.Parent).
       WithMany().
       HasForeignKey(m => m.ParentId);
}