Auf jeden Fall für jede Abfrage. Es ist ein leichtes Objekt, so dass es nicht viel kostet, jedes Mal, wenn Sie es brauchen, eines zu erstellen.
Außerdem, je länger Sie einen ObjectContext am Leben erhalten, desto mehr Objekte im Cache wird es enthalten, während Sie Abfragen dagegen ausführen. Dies kann zu Speicherproblemen führen. Daher ist die Verwendung des ObjectContext als Singleton eine besonders schlechte Idee. Während Ihre Anwendung verwendet wird, laden Sie mehr und mehr Entitäten in den Singleton ObjectContext, bis Sie schließlich die gesamte Datenbank im Speicher haben (es sei denn, Sie trennen Entitäten, wenn Sie sie nicht mehr benötigen).
Und dann gibt es ein Problem der Wartbarkeit. Eines Tages versucht man, einen Fehler zu finden, kann aber nicht herausfinden, wo die Daten geladen wurden, die ihn verursacht haben.
IMO - Verwendung DI die Instanz des EF Objektkontextes zu lösen und mit dem Lebensdauern spielen, um zu prüfen, welche Option Ihnen die besten Ergebnisse liefert ... – Sunny