Ein Artikel mit demselben Schlüssel wurde bereits hinzugefügt

8

Ich bekomme diesen Fehler zufällig auf dem Produktionsserver hier ist der Stack-Trace des Fehlers. Ich benutze linq zu SQL und .net 4.0

%Vor%

Der Code in Zeile 14 ist unten. Ich habe auch den Datacontext

eingeschlossen %Vor%

Code in Zeile 44 ist

%Vor%     
Tassadaque 08.08.2011, 07:43
quelle

6 Antworten

8

LINQ behält einen "Cache" von Tabellen bei, die Sie bereits verwendet haben, um zu verhindern, dass Sie sie mehrmals suchen müssen.

%Vor%

Die Tabelle, die Sie verwenden möchten, wurde noch nicht im Datenkontext verwendet. Daher wird sie dem "Cache" hinzugefügt. Eine der Möglichkeiten, wie dies scheitern könnte, ist, wenn Sie GetTable() gleichzeitig von mehreren Threads aufrufen, was darauf hindeutet, dass Sie einen einzelnen Datenkontext für die gesamte Anwendung verwenden, was keine gute Idee ist. Verwenden Sie nicht denselben Datenkontext, wenn Sie Tasks parallel ausführen.

    
ErikHeemskerk 20.03.2012 15:08
quelle
2

Ich habe ein ähnliches Problem. Ich habe es gelöst. Tatsächlich habe ich eine doppelte Eigenschaft mit dem gleichen Namen in meinem ViewModel. Eine Eigenschaft war in BaseViewModel und eine andere in abgeleitetem Modell.

Zum Beispiel

%Vor%

Ich habe sie als

geändert %Vor%

Jetzt funktioniert es gut.

    
atulpatel.mca 26.08.2012 19:47
quelle
1

Es sieht aus wie ein Fehler - aber MS hat es für .NET 4

behoben

Ссылка

Überschreiben Sie alle Eigenschaften in Ihren Modellklassen?

Hoffe, das hilft,

Matt

    
Matt Griffiths 08.08.2011 08:22
quelle
0

Ich hatte den gleichen Fehler, aber die Ursache war, dass eine meiner vielen Beziehungen mit den falschen Enden als primäre und sekundäre Schlüssel in der Beziehung definiert wurde.

Mithilfe des SQL Server Management Studio-Designers war es zu einfach, die untergeordnete Tabelle in die übergeordnete Tabelle zu ziehen und den Unterschied in der erstellten Beziehung zu übersehen.

Überprüfen Sie, ob alle Ihre Beziehungen korrekt definiert sind.

    
Gone Coding 07.01.2012 10:38
quelle
0

Nach einigen Monaten der Bereitstellung auf dem Produktionsserver hatten wir ähnliche Probleme. Nach einigen Nachforschungen habe ich herausgefunden, dass es manchmal ein Problem gibt, wenn LINQ die Verbindung automatisch schließt. Jetzt schließen wir ausdrücklich alle LINQ TO SQL-Verbindungen über die statische Erweiterungsmethode. Beispielcode:

%Vor%     
Zeus 05.03.2012 23:58
quelle
0

Ich habe das gleiche Problem in EF 4.1. mit einer bestehenden Anwendung. Was ist passiert? Die EF 4.1 benötigt das .net Framework 4.0. Windows Update ersetzt das .NET Framework 4.0 mit 4.5 und ich habe den gleichen Fehler, den Sie bekommen haben. Die Lösung bestand in der Deinstallation von .net 4.5 und der Installation von .net 4.0. Auf dem Produktionsrechner sollten Sie die Fenster so einstellen, dass das Update auf 4.5 übersprungen wird.

    
Dan Nick 29.10.2014 10:44
quelle