entity-framework - 无法将联结表(由于多对多关系)添加到实体数据模型设计器 (edmx)
问题描述
我在实体框架中有一个数据库模型。edmx 有一些表,现在我正在尝试添加两个新表(它们是连接表)。我曾经看到有人在过去添加了这两个表,但由于某种原因,这些表没有显示在图表中。它们未列在实体类型列表中(在图节点下),但我确实在实体商店中看到了它。
我做了以下事情:
- 编辑 edmx 文件并删除与这两个表有关的所有条目。然后从 edmx 设计器中,我通过“从数据库更新模型...”选项添加了这 2 个联结表。这 2 个联结表显示在那里并且可以添加。表格继续而不显示在图表中。
- 选择并删除 edmx 图表中的所有表,然后将它们再次添加到 edmx。再一次,表格继续,而不显示在图表中。
这 2 个表有它们的主键和指向 edmx 图中已经显示的其他表的外键。由于 2 个表之间存在多对多关系,这 2 个表也是联结表。
此外,我已经重新启动了 Visual Studio,清理了所有解决方案并再次重建,但没有成功。
知道我能做些什么来添加这两个表吗?
更新#1:磁盘中也没有创建类。
其中一张表的 SQL Server 定义如下(另一张表类似):
CREATE TABLE [dbo].[DeptPerson](
[deptId] [int] NOT NULL,
[personId] [varchar](20) NOT NULL,
CONSTRAINT [PK_DeptPerson] PRIMARY KEY CLUSTERED
(
[deptId] ASC,
[personId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[DeptPerson] WITH CHECK ADD CONSTRAINT [FK_DeptPerson_Department] FOREIGN KEY([deptId])
REFERENCES [dbo].[Department] ([deptId])
GO
ALTER TABLE [dbo].[DeptPerson] CHECK CONSTRAINT [FK_DeptPerson_Department]
GO
ALTER TABLE [dbo].[DeptPerson] WITH CHECK ADD CONSTRAINT [FK_DeptPerson_Person] FOREIGN KEY([personId])
REFERENCES [dbo].[Person] ([personId])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[DeptPerson] CHECK CONSTRAINT [FK_DeptPerson_Person]
GO
更新#2:正如 Gert Arnold 解释的那样,联结表(中间表)在多对多关系(我的情况)中被设计隐藏。在这篇文章中也证实了这一点。我不知道连接表被设计隐藏了......
解决方案
推荐阅读
- python - DataFrame 和 Python 找不到 CSV 文件的列名
- telegram-bot - What are Telegram bot rate limits aggregation period
- python - Detect click on Label - PyQT5
- kotlin - Ktor Android 客户端 Websocket 连接失败
- list - 从类元素创建一个列表
- javascript - 为什么表格没有出现?
- python - Discord bot python:如何获取角色的颜色 Hex 或 RGB 格式
- google-cloud-platform - 使用谷歌云平台日志分析不同条件下的数值
- url - 如何为每个用户自动生成一个页面?⚙
- amazon-web-services - EC2 上的 Kubernetes 负载均衡器(不是 EKS)