Nel framework C# MVC EF, ho visto molti esempi che creano semplicemente un nuovo DbContext
ogni volta che è necessario inserire un inserto o una query e quindi chiuderlo/rilasciarlo (molti usano "using" per auto close/release).DbContext è un'operazione costosa?
Si è cercato su questo ma non è stato possibile trovare una buona risposta, ma sta creando un DbContext
un'operazione molto economica e veloce?
Ad esempio, se si pensa a un'applicazione MVC tipica, nella pagina sono presenti molti "componenti", come intestazioni, barre del sider, contenuto principale, ecc. E in una configurazione non banale, ogni componente avrà il suo proprio logica e codice personale - suppongo di creare un nuovo DbContext
in ognuno di questi componenti? (in caso affermativo, il sistema memorizza automaticamente nella cache il risultato della query? Ad esempio, un caso d'uso comune è che, in ciascuno di questi componenti, è necessario interrogare il database per le impostazioni correnti del sito, che è la stessa riga in un tavolo).
Questo è qualcosa * facilmente * testato e osservato da * voi *. Provaci e scoprilo! –
@ Cubicle.Jockey Dove altro dovrebbe fare? Il controller sembra un buon posto. –
Non lo invio come risposta perché non riesco a trovare la pagina originale su MSDN, ma i contesti sono preparati per essere creati e distrutti in modo efficiente, l'unica parte dispendiosa nella creazione di un contesto è la connessione DB sottovoce e EF gestiscilo, non lo chiuderà quando distruggi il contesto, ha un pool interno che li gestisce – Gusman