【发布时间】:2015-04-25 13:41:51
【问题描述】:
我有一张会议桌。一个会议可以有一个相关会议的列表。这就是所谓的递归关联吗?
这是否通过让另一个表 ConferenceAssociatedConference 具有两个字段(ConferenceId、AssociatedConferenceId)并且这两个字段都是指向会议表的同一个 ConferenceId 字段的外键来实现?
我虽然以上是正确的,但在创建和构建我的 edmx 时,我得到:
错误 6 错误 3034:从第 875、982 行开始映射片段时出现问题:可能具有不同键的两个实体映射到同一行。确保这两个映射片段将 AssociationSet 的两端映射到相应的列。
CREATE TABLE [dbo].[ConferenceAssociatedConference](
[ConferenceId] [nvarchar](50) NOT NULL,
[AssociatedConferenceId] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_ConferenceAssociatedConference] PRIMARY KEY CLUSTERED
(
[ConferenceId] ASC,
[AssociatedConferenceId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ConferenceAssociatedConference] WITH CHECK ADD CONSTRAINT [FkConfAssociatedConf_AssociatedConferenceId] FOREIGN KEY([AssociatedConferenceId])
REFERENCES [dbo].[Conference] ([ConferenceId])
GO
ALTER TABLE [dbo].[ConferenceAssociatedConference] CHECK CONSTRAINT [FkConfAssociatedConf_AssociatedConferenceId]
GO
ALTER TABLE [dbo].[ConferenceAssociatedConference] WITH CHECK ADD CONSTRAINT [FkConfAssociatedConf_ConferenceId] FOREIGN KEY([ConferenceId])
REFERENCES [dbo].[Conference] ([ConferenceId])
GO
ALTER TABLE [dbo].[ConferenceAssociatedConference] CHECK CONSTRAINT [FkConfAssociatedConf_ConferenceId]
GO
【问题讨论】:
标签: sql database entity-framework database-design many-to-many