Ich bin neu in EF-Code ersten Prinzipal und derzeit ohne Ahnung, was zu tun ist .. Ich habe 2 POCO-Klassen ..
%Vor%und
%Vor%Meine Datenbankerstellung ist in Ordnung, aber wenn ich versuche, einige Daten mit dem benutzerdefinierten Initialisierer zu initialisieren, erhalte ich folgenden Fehler:
Einführung der FOREIGN KEY-Einschränkung "Problem_User" in die Tabelle "Probleme" können Zyklen oder mehrere Kaskadenpfade verursachen. Geben Sie ON an LÖSCHEN SIE KEINE MASSNAHME oder AKTUALISIEREN SIE KEINE MASSNAHME, oder ändern Sie andere FREMDSCHLÜSSEL Einschränkungen.
Constraint konnte nicht erstellt werden. Siehe vorherige Fehler.
Dies ist mein Initialisierer:
%Vor%Was mache ich falsch? Vielen Dank im Voraus!
Das wird wegen Comments
sein. EF verwendet standardmäßig Kaskadenlöschungen für Referenzen. In Ihrem Fall wird die Kaskadenlöschung von Benutzer erstellt - & gt; Problem, Benutzer - & gt; Kommentar aber auch von Problem - & gt; Kommentar. Wenn Sie User Cascading gelöscht haben, können Sie in den gleichen Kommentar Datensatz aus Problem
und User
kommen. Das ist in SQL Server nicht zulässig. Auf jeden Datensatz kann nur durch einen einzelnen kaskadierenden Löschpfad zugegriffen werden.
Um dies zu vermeiden, müssen Sie fluentes Mapping verwenden, um das kaskadierende Löschen auf eine Relation umzustellen (Sie müssen die Wahl treffen). Das Beispiel für Benutzer - & gt; Kommentar
%Vor% Es kann andere Entitäten und Beziehungen geben, die dieses Problem in Ihrem Modell verursachen können, aber Comment
sieht in Ihrem Beispiel offensichtlich aus.
Tags und Links entity-framework foreign-keys ef-code-first cascade