0

我在 Visual Studio 中创建了 2 个表,说 TA 和 TB。在 edmx 文件中,我在 TA 和 TB 之间建立了一对多的关联。建立关联后,会在 TB 中生成一个名为 的新列TAId

我只想知道是否必须在数据库的 TB 表中添加该列?

编辑: 我得到的例外:

nCeremony.msl(23,10):错误 3004:从第 23 行开始映射片段时出现问题:没有为 Set CourseOptions 中的属性 CourseOption.MenuId 指定映射。

在以下情况下,具有密钥 (PK) 的实体将不会往返:

实体类型为 [CeremonyDBModel.CourseOption]

Ceremony.msl(31,10):错误 3004:从第 31 行开始映射片段时出现问题:没有为 Set Menus 中的属性 Menu.CeremonyId 指定映射。

在以下情况下,具有密钥 (PK) 的实体将不会往返:

实体是类型 [CeremonyDBModel.Menu]

4

1 回答 1

0

一对多关联是通过让子表中的记录引用其父表来完成的。

考虑一个客户和购买的例子。一个客户可以进行多次购买,但每次购买只能属于一个客户。考虑以下两个表:

customers     purchases
============  ===========
id  name      id  customer_id  product

每个客户都有一个唯一的 ID 和名称。每次购买还有一个唯一的 ID 和产品名称。但是,为了具有一对多关联,购买表必须引用哪个客户进行了购买。您不能反过来执行此操作,否则您将有重复的客户名称,每个客户都引用了一些购买。

例如:

customers     purchases
============  ===========
id  name      id  customer_id  product
--- --------  --- ------------ --------
1   John      1   1            apple
2   Mary      2   1            orange
              3   2            banana

在此示例中,您可以看到约翰购买了一个苹果和一个橙子,而玛丽购买了一个香蕉。

customer_id列是购买表与客户表建立关系所必需的。

通过创建 TA 和 TB 表之间的关联,Visual Studio 为您创建了列TAid,因为这就是 MS SQL Server 等关系数据库处理它们的方式。

于 2012-08-03T20:01:48.357 回答