我有一个简单的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,我想创建一个新表,它拥有多对多的关系,例如
Entry_Id | Related_Entry_Id
01 | 02
01 | 03
01 | 06
02 | 04
这样,条目01将与02,03和06相关,条目02与04相关。
答案 0 :(得分: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");
});
}
}