0

我有一个名为Items的实体,然后我有几个实体具有该表键ItemId的外键(NOT NULLABLE)

然后我有另一个名为Soldiers的表,它也依赖于Items,但在这种情况下,它是一个(NULLABLE)外键。

当我删除Items表中的项目时,我收到有关Soldiers表中存在的项目的错误。如果我没有带物品的士兵,我不会收到错误消息,并且所有其他表都已正确级联删除。

我想我必须在 Fluent API 上放一些东西才能在这张桌子上级联删除,但我不知道该怎么做。

谢谢

4

1 回答 1

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);
于 2014-08-18T17:46:14.297 回答