1

我有一个简单的 Entry 类模型

public class Entry
{
    public int Id { get; set; }
    public DateTime Modified { get; set; }
    public DateTime Created { get; set; }

    // Related entries
    public virtual ICollection<Entry> RelatedEntries { get; set; }

    // The nodes this entry contains
    public virtual ICollection<Node> Nodes { get; set; }

    // The category this entry is located in
    public virtual Category Category { get; set; }
}

我希望我的条目能够有一个相关条目的列表,问题是它只是将一个 FK Entry_id 添加到 Entries 表中,我想创建一个新表,它包含多对多关系,例如

Entry_Id | Related_Entry_Id
      01 | 02
      01 | 03
      01 | 06
      02 | 04

因此,条目 01 与 02、03 和 06 相关,条目 02 与 04 相关。

4

1 回答 1

3

您可以使用 Fluent API 指定关系是多对多类型(而不是 EF 默认假定的一对多关系):

public class MyContext : DbContext
{
    //...
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Entry>()
            .HasMany(e => e.RelatedEntries)
            .WithMany()
            .Map(m =>
            {
                m.MapLeftKey("Entry_Id");
                m.MapRightKey("Related_Entry_Id");
                m.ToTable("EntryRelations");
            });
    }
}
于 2012-09-03T19:07:54.160 回答