DELETE语句与REFERENCE约束冲突> “FK_dbo.VendorDocuments_dbo.VendorModels_VendorId”。发生在数据库中的冲突> “aegisv”,表“dbo.VendorDocuments”,列'VendorId'。 声明已经终止。
意味着我有一个VendorModel表,其中包含invoicedocument列表(它是具有表供应商模型的外键vendorId的模型)。当我试图从数据库中删除供应商模型时,我正在超越异常。
我尝试了各种各样的东西,但我还没有解决。
添加了以下代码,但没有效果。
modelBuilder.Entity<VendorDocument>()
.HasRequired(x => x.VendorModel)
.WithMany(u => u.VendorDocumemts)
.WillCascadeOnDelete();
请任何人帮助我..谢谢。
答案 0 :(得分:0)
只需更改一点代码,试试吧: -
modelBuilder.Entity<VendorDocument>()
.HasOptional(j => j.VendorModel)
.WithMany(u => u.VendorDocumemts)
.WillCascadeOnDelete(true);
答案 1 :(得分:0)
您还必须在数据库上启用级联删除规则。 EF不对在数据库中级联删除负责。
EF负责SaveChanges()
之后ObjectContext的正确性。因此,EF尝试将ObjectContext与数据库中预期的级联之后的预期数据库状态同步。
因此,如果您在模型中创建了级联删除规则,则必须在数据库中配置级联删除规则。 Tip 33
在数据库中启用级联删除规则 - Enable CascadeDelete