asp.net mvc双向自引用多对多

时间:2012-10-19 10:04:07

标签: entity-framework asp.net-mvc-4 many-to-many bidirectional self-reference

我很难在ASP.NET MVC4中使用EF设置双向自引用多对多映射

我有:

modelBuilder.Entity<Item>()
    .HasMany(i => i.ChildItems)
    .WithMany()
    .Map(m => m.MapLeftKey("ItemID")
        .MapRightKey("ChildItemId")
        .ToTable("ItemChildItems"));

所以我能够查询Item.ChildItems没问题。

但是,我也想要Item.Parents

我确信必须有一个明显的解决方案,但我错过了它。我尝试过创建另一个实体Parent:Item和一个单独的映射。我也试过用两个映射表操作。这些都变得混乱,我还是没有设法使它们工作。

我不需要任何有效载荷。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:3)

你试过这个吗?

modelBuilder.Entity<Item>()
    .HasMany(i => i.ChildItems)
    .WithMany(i => i.Parents) // associate the parent items here
    .Map(m => m.MapLeftKey("ItemID")
        .MapRightKey("ChildItemId")
        .ToTable("ItemChildItems"));