从 Entity Framework Code First 生成数据库时出现此错误。
我没有看到脚本有任何问题:
alter table [dbo].[Votes] add constraint [Post_Votes] foreign key ([Post_Id]) references [dbo].[Posts]([Id]) on delete cascade;
alter table [dbo].[Votes] add constraint [User_Votes] foreign key ([Voter_Id]) references [dbo].[Users]([Id]) on delete cascade;
每个参考都指向不同的表!
每个表我只能有一个删除级联?
Edit: I think I found the problem, the bug is EF:
如果我有 3 个表:用户、帖子和投票。
和关系:
Post.AuthorId -> User.Id Votes.PostId -> Post.Id Votes.UserId -> User.Id
Sql 正确生成错误,因为如果我删除帖子,我将有 2 个投票路径:用户 -> 投票和用户 -> 帖子 -> 投票
但是实体框架没有检测到这一点并在删除级联时生成 3 个外键。