一对一的表映射是什么意思?

时间:2009-07-16 17:25:16

标签: sql sql-server database database-design

今天早上我听点网摇滚时,我听到了这句话。显然linq to sql只支持一对一的表映射。

5 个答案:

答案 0 :(得分:4)

一对一映射意味着一个父行只能有一个子行。考虑设计时有不同类型的映射

一对多:汽车有很多部件 多对一:许多汽车使用相同的部件
多对多:许多零件用于许多汽车中 一对一:一部分仅在一辆车中使用一次

答案 1 :(得分:3)

一对一,一对多,多对多是定义关系多样性的术语。

http://www.databaseprimer.com/relationship.html

答案 2 :(得分:2)

我知道Linq-to-Sql不仅允许一对一映射,而且允许一对多映射,如上所述。

我要么你没有听过(或最近听过)你提到过的DNR事件(这个引用的时间是哪一个)。但我发现它们不太可能意味着Linq-to-Sql无法处理一对多的关系。

我认为他们的意思是Linq-to-Sql只能在“实体”上进行一对一的匹配。因此,您的数据库可以将CUSTOMER和INVOICE作为一对多关系,在Linq-to-Sql中,您将拥有一个名为Customer的对象和一个名为Invoice的对象,其中它们之间的关系是1到多,但.NET与之间的关系要使Linq-to-Entities与其对象具有一对多的关系,例如,您可以拥有一个名为INVOICE的数据库表,但是您可以拥有多个Linq对象,例如Invoice和PaidInvoice以及数据库表。这些都将引用相同的数据库表,但PaidInvoice将Paid_flg列设置为1而不是0。

答案 3 :(得分:1)

这意味着对于一个表中的每个条目,在另一个表中存在单个相关条目。但是,Linq to SQL支持除一对一之外的所有类型的数据关系。例如,查看Join examples here

答案 4 :(得分:0)

一对一关系意味着对于一个表中的每条记录,相关表中只有一条记录...

但LinqToSql支持一对一一对多关系的映射...... 可以完成多对多但需要一些编码...