实体框架上的两个相同的外键

时间:2015-05-20 18:57:26

标签: c# sql-server entity-framework

我有这些表格:

Companies (CompanyID, Name, CompanyTypeID)
CompanyTypes (CompanyTypeID, Name)

我想避免像" TypeACompanies"," TypeBCompanies"等表格。但问题是两种特定公司类型之间存在多对多关系 - 一种"零售商"公司可以有很多"供应商"公司,以及一个"供应商"公司可以提供许多"零售商"公司。

这导致了一个带有复合主键的新链接表 - 这两个字段都是Companies的外键:

RetailerCompanies_SupplierCompanies (RetailerCompanyID, SupplierCompanyID)

链接表的示例数据:
(1,1)
(1,2)
(1,3)
(2,1)
(2,2)
(2,3)

在实体框架中,Company实体看起来像这样(我在做数据库优先):

public Company()
{
    this.Companies1 = new HashSet<Company>();
    this.Companies = new HashSet<Company>();
}

这是不好的做法吗?有没有更好的方法来实现这种关系?

0 个答案:

没有答案