【发布时间】:2016-08-18 23:55:43
【问题描述】:
我正在开发一个 .NET 4 项目。最近一列被添加到表“T”中,之后其他表与表 T 的所有关联都丢失了(任何具有表 T 外键的表现在都没有它)。我应该提一下,我们使用 sqlmetal 命令来更新与 DBML 相关的类文件。而且这个问题是突然出现的,虽然DB更新频繁,以前没有出现过这样的问题。
我不知道问题是否与 SQL Server 或 LINQ 有关。谁能帮帮我?
表 T:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[T](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Cid] [int] NULL,
[Guid] [uniqueidentifier] NOT NULL
CONSTRAINT [PK_T] 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
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[T] WITH CHECK ADD CONSTRAINT [FK_T_C] FOREIGN KEY([Cid])
REFERENCES [dbo].[C] ([Id])
GO
ALTER TABLE [dbo].[T] CHECK CONSTRAINT [FK_T_C]
GO
ALTER TABLE [dbo].[T] ADD CONSTRAINT [DF_T_Guid] DEFAULT (newid()) FOR [Guid]
GO
具有表 T 外键的表 I:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[I](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](512) NOT NULL,
[TId] [int] NOT NULL,
[Desc] [nvarchar](2000) NULL,
[Guid] [uniqueidentifier] NOT NULL
CONSTRAINT [PK_I] 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
ALTER TABLE [dbo].[I] WITH CHECK ADD CONSTRAINT [FK_I_T] FOREIGN KEY([TId])
REFERENCES [dbo].[T] ([Id])
GO
ALTER TABLE [dbo].[I] CHECK CONSTRAINT [FK_I_T]
GO
ALTER TABLE [dbo].[I] ADD CONSTRAINT [DF_I_Guid] DEFAULT (newid()) FOR [Guid]
GO
【问题讨论】:
-
数据库中是否还存在外键约束?
-
是的,所有关系都存在于数据库中
标签: asp.net c#-4.0 linq-to-sql