实体框架代码首先“连接表”

时间:2016-01-09 21:15:37

标签: c# entity-framework ef-code-first entity-framework-6 ef-migrations

我正在使用Entity Framework Code First。

我有一个名为Notes的实体

我还有其他实体,例如 商业合作伙伴 机会 工作订单

所有这些实体都可能有笔记。

对此进行建模的最佳方式是什么

注释表中的

1。)具有业务伙伴,业务机会和工作人员的可选外键。然后只需设置与音符相关的可选键

2。)有中间表,例如BusinessPartnerNotes,有两个字段BusinessPartnerId和NoteId

应该提到的是,注释永远不会同时与两个实体相关。

任何帮助或建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

鉴于您对基数的描述,并假设Notes for BusinessPartners具有相同格式的Notes for Opportunities,我采用最简单的方法(列表中的选项1.)。

class Note
{
    public int Id { get; set; }
    public string Content { get; set; }
}
class BusinessPartner
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Note> Notes { get; set; }
}
class Opportunity
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Note> Notes { get; set; }
}

哪个应生成以下表格:

Notes
  Id
  Content
  BusinessPartner_Id
  Opportunity_Id
BusinessPartners
  Id
  Name
Opportunities
  Id
  Name