Frage

In einem Projekt arbeite ich an, ich muss einen "Benutzer" aus meiner Datenbank löschen.Dieser "Benutzer" verfügt über zwei Tische, die auf den Fremdschlüssel auf den Fremdschein führen.Wenn Sie nicht löschen, versuche ich, alle Datensätze von der Tabelle A und Tabelle B zu löschen, die Fremdschlüssel an den "Benutzer" verfügen und dann den "Benutzer" -Datensatz löschen.Dies ist alles in Repositorys und der Verwendung der Objektfabrik.

Der Code lautet wie folgt:

generasacodicetagpre.

Wenn jede Tabelle einen Datensatz hat, funktioniert es in Ordnung.Wenn eine Tabelle mehrfach ist, was nur auf den Usertoken- und USERMAPPINGS passieren kann, erhalte ich den folgenden Fehler.

generasacodicetagpre.

Ich musste aus Gründen der Datenschutzgründe in XXXX einfügen.Was ich das gelesen habe, war das, dass LINQ jedoch die Vorbereitung der Änderungen für SQL speichert, die es in ein Wörterbuch versetzt, und irgendwie ist der Schlüssel für zwei Dinge die gleichen und die IT-Fehler, bevor eine Änderung auftritt.

Jede Hilfe würde sehr geschätzt werden.

War es hilfreich?

Lösung 2

Dies ist eine alte Frage, aber wir konnten das nicht gleichzeitig auf beide Tabellen löschen.Unsere Lösung bestand darin, von einem damals zu löschen und die Änderungen dazwischen zu begehen.

Andere Tipps

Ich bin irgendwie in der Dunkelheit, hier und anzunehmen, wie Sie gelesen haben, es ist korrekt mit einem kleinen Schmerz, den ich auf dem Weg hatte.

Tun Sie die Tabellen, die Sie nicht löschen, haben einen eigenen Primärschlüssel oder verwenden Sie den Fremdschlüssel als PK? (Nun, Sie wissen, was ich meine ... es klingt nicht, als hätten sie einen eigenen unabhängigen einzigartigen Primärschlüssel, den Linq bewusst ist) '

linq verwendet die GetHash-Methode, um eine eindeutige ID aus den primären Schlüsselfeldern zu erstellen.

Ich vermute, dass diese Tische mit mehreren Gegenständen in einer Art in der Mitte von vielen, die viel zu vielen Mitglied sind, sind. Eine schnelle und dreckige Fix besteht darin, ihnen eine Auto-Inkrement-Spalte hinzuzufügen, die sie dem Primärschlüssel zuordnen (ansonsten versuchen, ein Multi-Field-PK-PK zuzuweisen, das ich nicht mit LINQ Deliberatley wirklich ausprobiert habe).

Ich hoffe, das gibt Ihnen ein paar Ideen ... Sie könnten GetHashCode in einer Teilklasse überschreiben, um Ihr Problem an einem anderen Weg zu reparieren ... Sie sollten jedoch nur die Teile Ihrer Daten enthalten, die invariant sind, dass ein einzelner Artikel invariant ist)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top