如何使用代码优先为具有三个主键的另一个纯连接表进行纯连接的关系建模?
示例代码:
public class ItemA
{
public int ItemAId { get; set; }
public string Name { get; set; }
public ICollection<ItemB> ItemBs { get; set; }
}
public class ItemB
{
public int ItemBId { get; set; }
public string Name { get; set; }
public ICollection<ItemA> ItemAs { get; set; }
public ICollection<ItemC> ItemCs { get; set; }
}
public class ItemC
{
public int ItemCId { get; set; }
public String Name { get; set; }
public ICollection<ItemB> ItemBs { get; set; }
}
public class TestDbContext : DbContext
{
public DbSet<ItemA> ItemA { get; set; }
public DbSet<ItemB> ItemB { get; set; }
public DbSet<ItemC> ItemC { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
EF为(ItemC
和ItemB
)创建了一个联接表,为(ItemB
和ItemA
创建了另一个联接表,我想加入(创建关系)到另一个联接表,其中包含(ItemA
,ItemB
,ItemC
),即链接ItemA
,ItemB
和ItemC
在一起。
如何使用三个主键(ItemA
,Itemb
,ItemC
)创建关系/映射连接到另一个表?
此外,这个表真的是一个需要自己的类的实体,以便Entity Framework可以创建第三个表吗? (我想避免为只有主键的东西创建类,例如,创建一个只有主键的ItemAItemBItemC
类。)