DbContext und Verbindungspools

In einer Anwendung, die ich geerbt habe, befindet sich dies in einem Basis-Controller, von dem jeder andere Controller in der Anwendung erbt.

public BaseController()
    {
        db = new MyDbContext();

        db.Database.Log = s => Debug.Write(s);
    }

 public MyDbContext()
        : base("name=MyDbContext")
    {
        // hack to force Visual Studio to deploy the Entityframework.SqlServer package 
        var instance = SqlProviderServices.Instance;
    }

Aufgrund der Art und Weise, wie die Anwendung entworfen wurde, werden mindestens 2 Kontexte pro Anforderung erstellt. (Es handelt sich um eine MVC-Anwendung, und auf jeder Seite wird der HomeController aufgerufen, sowie alle anderen Controller, die für eine bestimmte Seite aufgerufen werden.)

Meine Frage ist, wann dasDbContext eine Verbindung zu SQL Server herstellen? Wird der Kontext sofort erstellt oder nur, wenn eine Abfrage ausgeführt wird?

Wenn es das erstere ist, verwende ich doppelt so viele Verbindungen zum SQL-Server wie erforderlich, und wenn es das letztere ist, ist es wahrscheinlich kein allzu großes Problem.

Ich glaube nicht, dass ich das in naher Zukunft umgestalten kann, schon gar nicht ohne Begründung. Welche potenziellen Gefahren dieses Entwurfs sollte ich berücksichtigen?

Entity Framework 6.1.3

Antworten auf die Frage(6)

Ihre Antwort auf die Frage