Domanda

Sono confuso su quando creare istanze di oggetti o classi Helper statiche. Ad esempio, se chiamo un metodo per aggiornare un modello di dati e invio al database, creo un'istanza di DataContext. Qual è la durata di quel Datacontext ed è giusto creare nuove istanze ogni volta che è necessario un nuovo aggiornamento dei dati?

Nel mio controller ho creato un'istanza di DataCOntext e, ad esempio, ho riutilizzato quell'istanza per postare nuovamente sul controller.

È stato utile?

Soluzione

DataContext è una classe piuttosto leggera e deve essere utilizzata per un'unità di lavoro. In genere, passo in una Factory che creerà un DataContext appropriato, se necessario. Di solito lo avvolgerò in un blocco usando e convertirò i risultati in un Elenco (o altro oggetto) in modo che la query venga eseguita nel codice del controller e gli oggetti risultanti vengano passati alla mia vista. In questo modo DataContext può essere eliminato (dal blocco using) nel metodo controller.

Il motivo per cui viene iniettato un factory nel controller è duplice: consente a DataContext di essere creato su richiesta e mi consente di utilizzare un factory che genera un DataContext falso per i test. Quest'ultimo mi permette di evitare di utilizzare il database effettivo nei miei test unitari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top