Entity Framework 5 - "Widersprüchliche Änderungen festgestellt"

8

In unserer EF 5-Anwendung versuchen wir sofort, wenn ein SQL Server-Deadlock-Fehler bei einer Einfügung oder Aktualisierung auftritt, die Operation erneut. Wenn wir dies jedoch versuchen, erhalten wir den folgenden Fehler:

%Vor%

Dieser Fehler stammt nicht von SQL Server. Dies ist ein EF 5 Fehler. Und wir versuchen nicht, mehrere Entitäten mit demselben Schlüssel einzufügen. IOW, wir versuchen nicht, eine doppelte Zeile einzufügen. Ich vermute jedoch, dass dieser Fehler etwas anderes bedeutet. Aber ich bin mir nicht ganz sicher, ob ich weiß, was das Problem ist. Wenn ich raten müsste, würde ich sagen, dass EF beim ersten Versuch sieht, wo versucht wird, eine Entität einzufügen. Es schlägt aufgrund eines Deadlocks fehl. Wenn wir es sofort erneut versuchen, denkt EF, dass wir versuchen, die gleiche Operation mit demselben Schlüssel erneut auszuführen, und es nicht gefällt. Ich bin mir nicht sicher, wie ich das umgehen soll.

    
Randy Minder 21.06.2013, 14:29
quelle

1 Antwort

10

Es sieht so aus, als würden Sie versuchen, Ihre Abfragen für dieselbe Instanz von DbContext auszuführen. In diesem Fall sind Ihre Änderungen bereits vom letzten Versuch anstehend.

Da für den Kontext keine Änderungen rückgängig gemacht werden, müssen Sie den Kontext zwischen "Wiederholungen" entfernen und neu erstellen.

    
Jim 21.06.2013, 16:05
quelle