linq-to-sql "Eine Entität, die nicht angehängt wurde, kann nicht entfernt werden"

8

Ich erhalte den Fehler Cannot remove an entity that has not been attached. , wenn ich versuche, einen Datensatz zu löschen. Ich habe gegoogelt und obwohl es viele Orte gibt, um die Lösung zu finden, um dieses Problem zu beheben, bringt mich der vorgeschlagene Fix nicht weiter:

%Vor%

Meine größere Frage lautet: Wirkt sich dieses Problem NUR auf Löschabfragen aus oder betrifft es auch andere Arten von Abfragen, und ich bin noch nicht auf dieses Problem gestoßen. Ich habe eine Update-Abfrage geschrieben und es scheint zu funktionieren, ohne in diesen Fehler zu laufen.

Danke.

    
frenchie 23.12.2011, 02:48
quelle

2 Antworten

11

Bitte beachten Sie diese SO Post: Wie in Linq zu SQL zu löschen?

  

... zum Anhängen, wenn Sie bereits den Primärschlüssel haben. Wenn Sie nicht den Primärschlüssel haben, dann habe ich immer nur einen Fetch und dann einen Delete gemacht, aber wenn ich einen Abruf mache, neige ich dazu, den Primärschlüssel für Updates zu speichern und zu löschen.

     

Es wird aus dem Primärschlüssel gelöscht, aber wenn Sie das haben, dann nur wie unten anhängen und löschen aufrufen. Ich vergebe das von DLINQ benötigte Objekt nicht, da ich es ändern möchte, wenn ich möchte, also gebe ich ein anderes User-Objekt ein und ziehe das PK einfach aus der Business-Klasse und lege es in die DAO-Klasse / p> %Vor%

    
Gent 23.12.2011, 05:15
quelle
4

Für mich hat der Fix zuerst nur nach dem Datenbankobjekt gesucht.

%Vor%

In meinen Augen konnte ich nur löschen, was bereits da war, also musste ich die Elemente in der Datenbank holen, die ich zuerst löschen wollte. Dies funktioniert auch mit Sammlungen und DeleteAllOnSubmit ().

    
aherocalledFrog 02.09.2014 16:09
quelle

Tags und Links