EF无法映射只包含联合主键字段的表

数据库中的表关系:

EF无法映射只包含联合主键字段的表_第1张图片

映射到EF中:

EF无法映射只包含联合主键字段的表_第2张图片

咦!不对呀!怎么就两张表呀?

对,做项目的时候,我也遇到了这样的情况,不管怎么更新,EF都是这样!

百思不得其解,问问度娘吧!

度娘说:

实际上,EF并不是没有去映射实体,为什么找不到呢?

是因为EF将映射的关系直接包含在子表中,所以关系表就没有映射的意义了。但是需要注意,满足EF自动映射到子表的条件是第三张关系表有且只有联合主键字段,并且都有相对应的主外键关系,否则无法映射到子表中,而是会映射成一个实体。


看了看EF中映射的实体,发现果然是度娘说的这样:

EF无法映射只包含联合主键字段的表_第3张图片

EF无法映射只包含联合主键字段的表_第4张图片

当我们遇到多对多的关系时,这第三张表是不可或缺的。但是,EF中没有这张表,又无法进行操作,怎么办呢?


解决办法一:

在第三张关系表中加一个字段(任意一个字段),可以加一个关系表的ID字段。这样第三张表就能够映射出来了。


解决办法二:

直接通过代码操作其中一张表来查询或修改关系表。

查询:

查询的时候,直接用 T_JTable.T_MTable 。如下:

EF无法映射只包含联合主键字段的表_第5张图片

添加和修改参考:http://blog.csdn.net/weizengxun/article/details/6954482

你可能感兴趣的:(ef)