asp.net - 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
。
感谢您的任何建议!!!