【发布时间】:2016-02-25 20:16:22
【问题描述】:
我们正在尝试使用数据库优先实体框架设置一个新的数据库和应用程序。
除了这一堆桌子外,一切都运行良好。 实体框架未设置关联,而是在 3 个实例中的 2 个中显示联结表。
在图片中,ProfileIntegrationToolkit 和 ProfileProviderPrimary 应该消失并且应该是关联。
这是重现表格的代码
/****** Object: Table [dbo].[AuthorizedType] Script Date: 25/02/2016 3:04:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[AuthorizedType](
[Id] [int] IDENTITY(1,1) NOT NULL,
[NameEng] [nvarchar](250) NOT NULL,
[NameFra] [nvarchar](250) NOT NULL,
[DescriptionEng] [nvarchar](max) NULL,
[DescriptionFra] [nvarchar](max) NULL,
CONSTRAINT [PK_AuthorizedToOperateTypes] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object: Table [dbo].[IntegrationToolkit] Script Date: 25/02/2016 3:04:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[IntegrationToolkit](
[Id] [int] IDENTITY(1,1) NOT NULL,
[NameEng] [nvarchar](250) NOT NULL,
[NameFra] [nvarchar](250) NOT NULL,
[DescriptionEng] [nvarchar](max) NULL,
[DescriptionFra] [nvarchar](max) NULL,
CONSTRAINT [PK_IntegrationToolkits] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object: Table [dbo].[Profile] Script Date: 25/02/2016 3:04:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Profile](
[Id] [int] IDENTITY(1,1) NOT NULL,
[AuthorizedToOperateTypeId] [int] NOT NULL,
[AuthorizationDate] [datetime2](7) NOT NULL,
[ProviderPrimaryId] [int] NOT NULL,
[ProviderSecondaryId] [int] NOT NULL,
[IntegrationToolkitId] [int] NOT NULL,
CONSTRAINT [PK_CyberSecurityProfile] PRIMARY KEY CLUSTERED
(
[Id] 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
/****** Object: Table [dbo].[ProfileIntegrationToolKit] Script Date: 25/02/2016 3:04:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProfileIntegrationToolKit](
[ProfileId] [int] NOT NULL,
[IntegrationToolkitId] [int] NOT NULL,
CONSTRAINT [PK_CyberSecurityProfileIntegrationToolKitOther] PRIMARY KEY CLUSTERED
(
[ProfileId] ASC,
[IntegrationToolkitId] 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
/****** Object: Table [dbo].[ProfileProviderPrimary] Script Date: 25/02/2016 3:04:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProfileProviderPrimary](
[ProfileId] [int] NOT NULL,
[ProviderId] [int] NOT NULL,
CONSTRAINT [PK_CyberSecurityProfileCredentialProviderPrimary] PRIMARY KEY CLUSTERED
(
[ProfileId] ASC,
[ProviderId] 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
/****** Object: Table [dbo].[ProfileProviderSecondary] Script Date: 25/02/2016 3:04:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProfileProviderSecondary](
[ProfileId] [int] NOT NULL,
[ProviderId] [int] NOT NULL,
CONSTRAINT [PK_CyberSecurityProfileCredentialProviderSecondary] PRIMARY KEY CLUSTERED
(
[ProfileId] ASC,
[ProviderId] 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
/****** Object: Table [dbo].[Provider] Script Date: 25/02/2016 3:04:42 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Provider](
[Id] [int] IDENTITY(1,1) NOT NULL,
[NameEng] [nvarchar](250) NOT NULL,
[NameFra] [nvarchar](250) NOT NULL,
[DescriptionEng] [nvarchar](max) NULL,
[DescriptionFra] [nvarchar](max) NULL,
[ParentId] [int] NULL,
CONSTRAINT [PK_CredentialProviders] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Profile] WITH CHECK ADD CONSTRAINT [FK_AuthorizedToOperate] FOREIGN KEY([AuthorizedToOperateTypeId])
REFERENCES [dbo].[AuthorizedType] ([Id])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_AuthorizedToOperate]
GO
ALTER TABLE [dbo].[Profile] WITH CHECK ADD CONSTRAINT [FK_ProvidersPrimary] FOREIGN KEY([ProviderPrimaryId])
REFERENCES [dbo].[Provider] ([Id])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_ProvidersPrimary]
GO
ALTER TABLE [dbo].[Profile] WITH CHECK ADD CONSTRAINT [FK_ProvidersSecondary] FOREIGN KEY([ProviderSecondaryId])
REFERENCES [dbo].[Provider] ([Id])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_ProvidersSecondary]
GO
ALTER TABLE [dbo].[Profile] WITH CHECK ADD CONSTRAINT [FK_Profile_IntegrationToolkit] FOREIGN KEY([IntegrationToolkitId])
REFERENCES [dbo].[IntegrationToolkit] ([Id])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_Profile_IntegrationToolkit]
GO
ALTER TABLE [dbo].[ProfileIntegrationToolKit] WITH CHECK ADD CONSTRAINT [FK_ProfileIntegrationToolKit_Profile] FOREIGN KEY([ProfileId])
REFERENCES [dbo].[Profile] ([Id])
GO
ALTER TABLE [dbo].[ProfileIntegrationToolKit] CHECK CONSTRAINT [FK_ProfileIntegrationToolKit_Profile]
GO
ALTER TABLE [dbo].[ProfileIntegrationToolKit] WITH CHECK ADD CONSTRAINT [FK_ProfileIntegrationToolKit_IntegrationToolkit] FOREIGN KEY([ProfileId])
REFERENCES [dbo].[IntegrationToolkit] ([Id])
GO
ALTER TABLE [dbo].[ProfileIntegrationToolKit] CHECK CONSTRAINT [FK_ProfileIntegrationToolKit_IntegrationToolkit]
GO
ALTER TABLE [dbo].[ProfileProviderPrimary] WITH CHECK ADD CONSTRAINT [FK_ProfileProviderPrimary_Provider] FOREIGN KEY([ProfileId])
REFERENCES [dbo].[Provider] ([Id])
GO
ALTER TABLE [dbo].[ProfileProviderPrimary] CHECK CONSTRAINT [FK_ProfileProviderPrimary_Provider]
GO
ALTER TABLE [dbo].[ProfileProviderPrimary] WITH CHECK ADD CONSTRAINT [FK_ProfileProviderPrimary_Profile] FOREIGN KEY([ProfileId])
REFERENCES [dbo].[Profile] ([Id])
GO
ALTER TABLE [dbo].[ProfileProviderPrimary] CHECK CONSTRAINT [FK_ProfileProviderPrimary_Profile]
GO
ALTER TABLE [dbo].[ProfileProviderSecondary] WITH CHECK ADD CONSTRAINT [FK_ProfileProviderSecondary_Provider] FOREIGN KEY([ProviderId])
REFERENCES [dbo].[Provider] ([Id])
GO
ALTER TABLE [dbo].[ProfileProviderSecondary] CHECK CONSTRAINT [FK_ProfileProviderSecondary_Provider]
GO
ALTER TABLE [dbo].[ProfileProviderSecondary] WITH CHECK ADD CONSTRAINT [FK_ProfileProviderSecondary_Profile] FOREIGN KEY([ProfileId])
REFERENCES [dbo].[Profile] ([Id])
GO
ALTER TABLE [dbo].[ProfileProviderSecondary] CHECK CONSTRAINT [FK_ProfileProviderSecondary_Profile]
GO
我做错了吗? 我尝试在 SSMS 中重新创建约束,但结果相同。
编辑 1- 如果我尝试减少我导入的表的数量。我遇到了类似的问题。
【问题讨论】:
标签: c# database entity-framework database-design