C# 联合后的新专栏

C# 联合后的新专栏,c#,sql,database,ado.net,C#,Sql,Database,Ado.net,我在VisualStudio中创建了两个表,比如TA和TB。在edmx文件中,我在TA和TB之间建立了1对多的关联。建立关联后,在TB中生成一个名为TAId的新列 我只是想知道是否必须在数据库的TB表中添加该列 编辑:我得到的异常: msl(23,10):错误3004:映射从 第23行:未为集合中的属性CourseOption.MenuId指定映射 课程选项 具有密钥(PK)的实体在以下情况下不会往返: 实体类型为[CeremonyDBModel.CourseOption] 仪式。msl(31,

我在VisualStudio中创建了两个表,比如TA和TB。在edmx文件中,我在TA和TB之间建立了1对多的关联。建立关联后,在TB中生成一个名为
TAId
的新列

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

编辑:我得到的异常:

msl(23,10):错误3004:映射从 第23行:未为集合中的属性CourseOption.MenuId指定映射 课程选项

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

实体类型为[CeremonyDBModel.CourseOption]

仪式。msl(31,10): 错误3004:映射从第31行开始的片段时出现问题:没有映射 为设置菜单中的properties Menu.CeremonyId指定

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

实体类型为[CeremonyDBModel.Menu]


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

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

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\u id
列来建立与customers表的关系


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

TB中是否有其他列表示TA中父记录的主键?然后必须按照Visula Studio的建议,将TA_ID列添加到表TB中。是的,我这样做了,但当我从数据库更新模型时,它会再次生成使用TA_ID_1名称的新列,但此列不在数据库表中,因此这就是为什么我在运行应用程序时出现异常,为什么?如果您在尝试运行应用程序时遇到异常,您应该在问题中发布异常文本。抱歉,我刚刚发布了异常文本,请看一看,希望有人能帮忙;不幸的是,我对您遇到的异常类型一点也不熟悉。