我搜索了这种问题,但不幸的是没有找到任何解决方案。
当我尝试在我的应用程序中创建联系人时出现错误
INSERT 语句与 FOREIGN KEY 约束“FK_Contacts_UserProfile”冲突。冲突发生在数据库“ContactAppContext”、表“dbo.UserProfile”、列“UserId”中。
我想UserId
与Contacts
表关联
我的表如下所示:
CREATE TABLE [dbo].[Contacts] (
[ContactId] INT IDENTITY (1, 1) NOT NULL,
[UserId] INT NOT NULL,
[FirstName] NVARCHAR (MAX) NOT NULL,
[LastName] NVARCHAR (MAX) NOT NULL,
[Address] NVARCHAR (MAX) NOT NULL,
[City] NVARCHAR (MAX) NOT NULL,
[Phone] NVARCHAR (MAX) NOT NULL,
[Email] NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_dbo.Contacts] PRIMARY KEY CLUSTERED ([ContactId] ASC),
CONSTRAINT [FK_Contacts_UserProfile] FOREIGN KEY ([UserId]) REFERENCES [dbo].[UserProfile] ([UserId])
);
CREATE TABLE [dbo].[UserProfile] (
[UserId] INT IDENTITY (1, 1) NOT NULL,
[UserName] NVARCHAR (56) NOT NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC),
UNIQUE NONCLUSTERED ([UserName] ASC)
);
如图所示,UserId
存在于UserProfile
表中
那么我做错了什么?
编辑 1
@Alexander Fedorenko
你的意思是这段代码?
SET IDENTITY_INSERT [dbo].[UserProfile] ON
INSERT INTO [dbo].[UserProfile] ([UserId], [UserName]) VALUES (1, N'admin')
INSERT INTO [dbo].[UserProfile] ([UserId], [UserName]) VALUES (2, N'test')
INSERT INTO [dbo].[UserProfile] ([UserId], [UserName]) VALUES (3, N'user')
SET IDENTITY_INSERT [dbo].[UserProfile] OFF
@Sachin我如何确保当我尝试在联系人表中插入时,它应该出现在 UserProfile 表中?例如,我有一个 UserId = 3 的用户,他已登录并且当他插入数据时,创建的联系人将与该用户相关。
编辑 2
因此,当我在视图中创建一个编辑器字段时UserId
,它似乎正在工作,当我指定UserId
, 并创建数据时,但我不希望UserId
在创建联系人页面中存在此编辑器字段,因为它是用户会写他的UserId
. 那么是否可以与UserId
登录用户相关,例如当他创建数据时,他不需要指定他的UserId
,而是记录会自动保存到带有他的 ID 的数据库中?