Ich erhalte einen primären Schlüsselverletzungsfehler, wenn ich versuche, ein Element mit einer Viele-zu-viele-Beziehung hinzuzufügen:
Ich habe zwei Klassen - Artikel und Tags, die eine Viele-zu-Viele-Beziehung haben:
%Vor%Wenn ich einen neuen Artikel hinzufüge, erlaube ich dem Benutzer, beliebige Tags einzugeben, und dann möchte ich ein neues Tag erstellen, wenn das Tag noch nicht in der Datenbank erstellt wurde, oder das Tag der Tags-Sammlung des Artikelobjekts hinzufügen Das Tag existiert bereits.
Wenn ich das neue Artikelobjekt erstelle, rufe ich die folgende Funktion auf:
%Vor%Diese Funktion überprüft grundsätzlich, ob in der Datenbank ein Tag vorhanden ist und gibt das Tag zurück, das dann mit artikel.Tags.Add (). zu der Tag-Sammlung des Artikelobjekts hinzugefügt wird.
Wenn ich jedoch versuche, das unter Verwendung des folgenden Codes zu speichern, erhalte ich einen Verstoß gegen die PRIMARY KEY-Einschränkung
%Vor%Ich kann nicht herausfinden, wie ich nur eine Beziehung zwischen dem Artikel und dem bereits vorhandenen Tag erstellen soll.
Verwenden Sie die gleiche Kontextinstanz für die gesamte Verarbeitung Ihrer Operation und Ihr Leben wird viel einfacher:
%Vor%Wenn Sie den Artikel nicht aus der Datenbank laden möchten (diese Abfrage ist redundant, wenn Sie wissen, dass der Artikel existiert), können Sie Folgendes verwenden:
%Vor%Wie gehst du vor, neue Tags zu erstellen? Und wie fügen Sie die vorhandene oder erstellte Entität an den Artikel an.
Verwenden Sie etwas wie
%Vor%Lesen Sie diesen Artikel Ссылка
Tags und Links .net c# entity-framework exception-handling primary-key