【发布时间】:2018-08-01 19:40:38
【问题描述】:
在 Entity Framework Core 中有大量关于为外键关系设置删除操作的行为的信息,但是,我发现关于如何指定“更新级联”的细节几乎为零外键的约束。
我找到的最接近的是 this 迁移相关的 Microsoft 文档。
public void Configure(EntityTypeBuilder<Something> builder)
{
builder
.HasOne(s => s.Thing)
.WithMany(t => t.Somethings)
.HasForeignKey(s => s.ThingId)
--> Like Delete behavior, how to set update behavior?
.OnDelete(DeleteBehavior.Cascade);
}
如何使用 Fluent API 做到这一点?
【问题讨论】:
-
您找不到此类信息,因为根本没有此类功能(EF6 和 EF Core 均不支持)。这是没有意义的,因为 EF (Core) 不允许修改 PK。您所能做的就是将
DeleteBehavior.SetNull用于可选 关系。 -
是的,您可以在迁移中设置它:
ForeignKey(onUpdate: ReferentialAction.Cascade)但是,它只对在 EF 之外进行的更新有用。
标签: entity-framework ef-core-2.1