DbContext内のすべてのDbSetに一括でDeleteBehaviorを設定する
ASP.NET Core Tutorialの動画のCascade Deleteの回の最後で紹介されてた.
OnModelCreatingメソッド内でDbContextの外部キーを収集し,それらのDeleteBehaviorを設定する.
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); foreach (var foreignKey in modelBuilder.Model.GetEntityTypes() .SelectMany(e => e.GetForeignKeys())) { foreignKey.DeleteBehavior = DeleteBehavior.Restrict; } }
他にもCascadeやSetNull,ClientSetNullなどがある.