0

Ich habe eine vorhandene Datenbank und ein .NET-Projekt, das ich gerade von RC1 auf RTM aktualisiert habe. Seit dem Wechsel musste ich aufgrund einiger Probleme mit Tabellennamen ein new initial migration anlegen. Ich möchte alle FK Constraints zu löschen Kaskade, die angezeigt wird, sollte das Standardverhalten sein.EF-Migration aktualisiert FK nicht auf Löschbedingung in der Datenbank (neue anfängliche Migration)

Wenn ich in meine Migrationsdatei schaue, ist alles "onDelete: ReferentialAction.Cascade" wie erwartet, aber das ist nicht in meiner Postgresql-Datenbank wider, wo alles "ON DELETE NO ACTION" ist.

Ein kleiner kleiner Durchbruch, den ich fand, war, dass, wenn ich die fließende API verwende, um .OnDelete (DeleteBehaviour.Cascade) zu tun und eine weitere Migration zu tun, hat es keine Wirkung. Die erstellte Migration hat keine Änderungen. Aber wenn ich versuche .OnDelete (DeleteBehaviour.SetNull oder irgendetwas anderes), dann eine weitere Migration nach, wird es erfolgreich eine ordnungsgemäße Migration mit den entsprechenden Änderungen generieren. Das lässt mich denken, dass EF irgendwie denkt, dass die Datenbank alles als Kaskade hat, wenn es in Wirklichkeit nicht funktioniert, möglicherweise etwas, das ich falsch gemacht habe, als ich eine neue anfängliche Migration erstellt habe?

Wie würde ich das beheben, um alle Fremdschlüssel auf Löschkaskade zu setzen? Vorzugsweise, ohne eine fließende api-Anweisung für jede Entität in meinem Projekt schreiben zu müssen

Antwort

0

Erneute Erstellung einer ersten Migration unter Verwendung von this answer stattdessen. Die Methode, die ich zuvor versucht habe, versuchte, die vorherige Datenbank zu erhalten, während diese gelöscht und neu erstellt wird.

Verwandte Themen