我有一个名为 Items 的实体,然后我有几个实体对此表键 ItemId 有一个外键(NOT NULLABLE) 。
然后我还有另一个名为士兵的表格,它也取决于项目,但在这种情况下,它是一个(NULLABLE)外键。< / p>
当我删除项表中的项目时,我会收到有关士兵表中存在的项目的错误消息。如果我没有士兵的项目我没有收到错误,所有其他表格都被正确级联删除。
我想我必须在Fluent API上添加一些内容才能在此表上进行级联删除,但我不知道该怎么做。
由于
答案 0 :(得分:1)
您可以使用WithCascadeOnDelete
配置它。
modelBuilder.Entity<Item>()
.HasMany(i => i.Soldiers)
.WithOptional(s => s.Item)
.HasForeignKey(s => s.ItemId)
.WillCascadeOnDelete(true);
或者
modelBuilder.Entity<Soldier>()
.HasOptional(s => s.Item)
.WithMany() // -> use i => i.Soldiers if any
.HasForeignKey(i => i.ItemId)
.WillCascadeOnDelete(true);