首页 > 解决方案 > EFCore 5.0 DeleteBehavior.Cascade 多个级联路径

问题描述

我有一个 3 表 Company、CompanyCertificates 和 FileRepo。他们的关系是这样的:

公司 - 到 - 公司证书(一对多)

builder.HasOne(cc => cc.Company)
  .WithMany(cc => cc.CompanyCertificates)
  .HasForeignKey(cc=>cc.CompanyID)
  .OnDelete(DeleteBehavior.Cascade);

CompanyCertificates - To - FileRepo(一对一)

builder.HasOne<CompanyCertificate>(x => x.CompanyCertificate)
  .WithOne(x => x.FileRepo)
  .HasForeignKey<FileRepo>(x => x.CertificateID)
  .OnDelete(DeleteBehavior.Cascade);

当我删除一家公司时,我想删除所有相关数据,这就是我选择他们DeleteBehavior的原因Cascade

当我尝试删除一家公司时,我收到一个错误,它说: Introducing FOREIGN KEY constraint 'FK_FileRepo_CompanyCertificate_CertificateID' on table 'FileRepo' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

我不知道如何修复该错误,因为我真的想删除有关该公司的所有数据。真正的原因是我在那张桌子上拿着高质量的图像FileRepo

感谢您的任何建议!!!

标签: asp.netentity-frameworkasp.net-coreentity-framework-coreef-code-first

解决方案


推荐阅读