Angenommen, ich habe einen lang andauernden Prozess (z. B. Windows-Dienst), der aus mehreren Threads auf eine Datenbank zugreifen muss.Lebensdauer von DbContext in einem lang laufenden Prozess
DbContext ist nicht Thread-sicher, es ist auch eine gute Idee, es für eine lange Zeit nicht zu behalten (scheint, dass eine best bewährte Vorgehensweise in der Web-Umgebung ist, einen neuen Kontext für jede Anfrage zu erstellen).
Basierend auf EF docs sind Contexts erwartet kurzlebig und verworfen zu sein, und als solche sind sehr leicht und Metadaten wiederzuverwenden implementiert zu sein, wann immer möglich, so scheint es, wie für jede Datenbank einen neuen DB Kontext zu schaffen Operation könnte unter diesen Umständen ein Weg sein, aber es scheint ein bisschen übertrieben.
Gedanken?
können Sie Code anzeigen? – Sampath
@Sampath Derzeit gibt es keine. Entscheiden Sie sich für einen besten Weg, um es zu schreiben. – Evgeni
DbContext auf lange Sicht zu halten, ist keine gute Idee - Speicherlecks, Überlauf sind möglich, und Change Tracking kann Ihnen flippige Ergebnisse bringen. Erstellen und Entsorgen von DbContext, wie Sie benötigen, ist eine ziemlich gute Idee –