实体框架:映射连接表

时间:2017-01-19 11:38:48

标签: entity-framework

我有以下型号:

enter image description here

我想公开一个关于“intallations”的成员,它给我一个基于连接表“installation_modules”的“模块”列表,我该怎么做?

我希望能够写

installations.Modules.Something()

无需在我的代码中使用连接表。

我还想直接在安装上映射“installation_type”,有可能吗?如果是的话怎么样?

1 个答案:

答案 0 :(得分:1)

实体框架会自动为您管理多对多关系,但通常installation_modules表应该只有两列installation_idmodule_id,它们将是复合主键而不是单独的主键。因此,Installation模型/类将具有public virtual ICollection<Module> Modules {get; set;}Module类将具有public virtual ICollection<Installation> Installations {get; set;}导航属性,以便于实体访问。

  

我还想映射&#34; installation_type&#34;直接安装,有可能吗?如果是的话怎么样?

是的,有可能。您可以在InstallationType实体中为Installation设置导航属性。

public class Installation
{
 //....other properties

 [Column("installation_type_id")]
 public int InstallationTypeId {get; set;}

 [ForeignKey("InstallationTypeId")]
 public virtual InstallationType InstallationType{get; set;}
}