【发布时间】:2016-12-02 04:19:19
【问题描述】:
我收到了错误:
消息 1785,第 16 级,状态 0,第 238 行
在表“Studios”上引入 FOREIGN KEY 约束“FK_Studios_Members_HeadId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
下面是我遇到问题的两个表格的简化版本:
CREATE TABLE [Members]
(
[MemberId] int NOT NULL IDENTITY
)
CREATE TABLE [Studios]
(
[StudioId] int NOT NULL IDENTITY,
[HeadId] int,
[OwnerId] int,
CONSTRAINT [PK_Studios] PRIMARY KEY ([StudioId]),
CONSTRAINT [FK_Studios_Members_OwnerId]
FOREIGN KEY ([OwnerId]) REFERENCES [Members] ([MemberId])
ON DELETE SET NULL,
CONSTRAINT [FK_Studios_Members_HeadId]
FOREIGN KEY ([HeadId]) REFERENCES [Members] ([MemberId])
ON DELETE SET NULL
)
我发现如果我切换两个FK的顺序,第二个总是会出错。我不明白为什么这会导致级联问题,因为两者都有“ON DELETE SET NULL”。
这是由 EF Core 代码优先生成的,所以我需要这些关系并且不能只在后端触发。
我错过了什么?
【问题讨论】:
-
你看到this了吗?我不知道它是否有助于回答这个问题,但它帮助我理解了一般问题:-)
-
嗯,许多可能的重复之一:stackoverflow.com/q/21390621/861716
标签: sql-server entity-framework foreign-keys code-first