使用 SQL 和 Linq 的多对多关系(实体框架/实体)

Posted

技术标签:

【中文标题】使用 SQL 和 Linq 的多对多关系(实体框架/实体)【英文标题】:Many to Many relationship using SQL and Linq (entity framework/to entities) 【发布时间】:2011-04-01 14:19:41 【问题描述】:

我有两张桌子:

- Attendees
- Events

通常,我会创建一个映射表“EventAttendeeMap”来将这些表链接成多对多关系。

这是最好的方法吗? 我应该将AttendeeIds 的列表存储在 xml 列中,而不是存储在事件表中吗?

我使用 .NET 3.5/4 和 Linq 作为 DAL(尽管我认为这可能与提出的设计问题无关)。

有兴趣了解人们的意见。

谢谢。 戴夫

【问题讨论】:

【参考方案1】:

映射表绝对是最好的方法 - 实体框架会将映射表转换为双方实体的集合,而表本身将基本上消失。

【讨论】:

感谢大家的回复(对不起,你们都是对的,所以第一个帖子得到了答案标志,没有任何个人信息。)很高兴知道我的想法是正确的。【参考方案2】:

简而言之,是的 - 创建一个映射表来保存活动 ID 和与会者 ID。

有一个很好的问题here 你可能会感兴趣。

【讨论】:

以上是关于使用 SQL 和 Linq 的多对多关系(实体框架/实体)的主要内容,如果未能解决你的问题,请参考以下文章

Remove() 不适用于实体框架中的多对多关系

实体框架代码优先的多对多关系的最佳方法

代码第一个约定不在实体框架6.2中的多对多关系上创建连接表

实体框架代码优先,同一张表上的多对多关系

在不使用实体框架的多对多中插入记录

使用实体框架中的导航属性填充多对多关系表