Ich habe Probleme mit Entity Framework und mehreren Threads und frage mich, ob es eine Lösung gibt, die die Fähigkeit zum verzögerten Laden hält. Aus meiner Sicht ist der Datenkontext nicht Thread-sicher, weshalb, wenn ich mehrere Threads mit dem gleichen Datenkontext habe, bekomme ich verschiedene Datenleser Fehler. Die Lösung für dieses Problem besteht darin, für jede Verbindung zur Datenbank einen separaten Datenkontext zu verwenden und anschließend den Datenkontext zu zerstören. Leider kann ich den Datenkontext nicht mehr löschen, wenn ich den Datenkontext zerstöre.
Gibt es ein Muster, das es mir erlaubt, in meiner Anwendung einen gemeinsamen Kontext zu haben, aber trotzdem mehrere Threads richtig zu behandeln?
Nein, es gibt keine solche Lösung. Ihre Auswahlmöglichkeiten in Multithread-Anwendungen sind:
Wenn Sie den zweiten Ansatz mit verbundenen Instanzen ausführen, ist das eine Katastrophe. Es würde erforderlich sein, alle versteckten Interaktionen mit dem Kontext zu erkennen und verwandten Code ebenfalls zu synchronisieren. Sie werden wahrscheinlich mit Single-Thread-Prozess enden, der in mehreren Switching-Threads abläuft.
Tags und Links multithreading entity-framework-4 lazy-loading