In un'applicazione che ho ereditato, è presente in un controller di base, dal quale ereditano tutti gli altri controller dell'applicazione.DbContext e pool di connessione
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;
}
A causa del modo in cui l'applicazione è stata progettata, vengono creati almeno 2 contesti per richiesta. (È un'applicazione MVC e c'è una chiamata a HomeController su ogni pagina più qualsiasi altro controller viene chiamato per una pagina specifica.)
La mia domanda è quando la DbContext
crea una connessione a SQL Server? È immediato quando viene creato il contesto o solo quando viene eseguita una query?
Se è il primo, allora utilizzerò il doppio del numero di connessioni al server SQL del necessario e, se è il secondo, probabilmente non è un problema.
Non credo di poterlo refactoring nell'immediato futuro, certamente non senza giustificazione. Quali potenziali insidie di questo design dovrei essere a conoscenza?
Entity Framework 6.1.3
Quale versione di EF è questo?E puoi mostrarci il costruttore di 'MyDbContext'? Ciò fornirà i dettagli necessari per rispondere alla tua domanda. – sstan
Aggiornamento della domanda – MrBliz