实体框架不识别一对多关联。为啥?

Posted

技术标签:

【中文标题】实体框架不识别一对多关联。为啥?【英文标题】:EntityFrame Work does not recognize one-to-many association. why?实体框架不识别一对多关联。为什么? 【发布时间】:2011-08-11 08:28:30 【问题描述】:

编辑

请查看以下图片,它详细说明了显示的图片 只有 ADO.NET ENTITY FRAME WORK 不能识别一对多 关联,但数据集可以。

http://imgur.com/a4WzM.gif

(对不起,我没有足够的声望直接上传图片)

我有两张桌子

table1:名称 [NAMEID, NAME](NAMEID 是 PK)

table2:说明 [DESCID,DESCRIPTION,IDofNAME](DESCID为PK,IDofNAME为与NAMEID相关的FK)

一个名字可以有很多描述,这些描述本身是独立于名字的。

来自 SQL SERVER 的数据条目有效,并且关系也被保留。

但是,问题

在 vs10 数据源中,“名称”表有一个子“描述”,它 再次有一个子“名称”,该子“名称”又有一个子“描述”,并且 这将永无止境。

“描述”表与“名称”表的关系也是如此 它与“描述”表有子关系/关系,它又具有 与“名称”表的关系,这件事没有尽头。

网格问题

在设计时通过拖放 NAME 表创建的数据网格,显示字段 [nameid, name, NAME OF THE RELATED TABLE(不是整个 NAME 的字段!)

请帮帮我,我在建立 pk-fk 的关系时做错了什么

谢谢

【问题讨论】:

【参考方案1】:

听起来您的表可能是多对多关系。 一个名称可以有多个描述,每个可以描述零个或多个名称。 如果是这种情况,您应该在它们之间添加一个解析器表,例如

CREATE TABLE NameDescription
    ([nameid] [int] NOT NULL,
     [descriptionid] [int] NOT NULL )

使用这种方法,您将不再需要描述表中的外键,而是通过这个新表进行连接。

【讨论】:

不是这样的,关系是一对多的。请看编辑,我已经链接了一张图片,请帮忙。 (抱歉没有足够的代表直接上传图片)

以上是关于实体框架不识别一对多关联。为啥?的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate框架学习之注解配置关系映射

4.一对多关联映射

删除与基于视图的实体具有一对多关联的实体对象

mybatis xml数据层框架应用--Mybatis关系映射之一对多关系映射

在分离场景中使用独立关联时更新一对多实体

Java--Mybatis关联映射之关联单个对象(即一对一);关联多个对象(即一对多)