La maggior parte (se non tutti) i miei POCO di Entity Framework hanno funzioni virtuali. Ho bisogno che queste funzioni siano virtuali in modo che le entità possano essere caricate in modo pigro.Come evitare di chiamare la funzione virtuale nel costruttore?
Se inizializzo Accommodations
nel costruttore, chiamerò una funzione virtuale nel costruttore, che è una cattiva pratica.
Ma come posso inizializzare Accommodations
se non nel costruttore?
public class Venue
{
public Venue()
{
Accommodations = new HashSet<Accommodation>();
}
public virtual ICollection<Accommodation> Accommodations { get; set; }
}
il punto di caricamento pigro è _non_ inizializzare affatto, fino primo utilizzo. –
@JohnWillemse Se lo lascio null, otterrò un'eccezione null nella mia vista. –
No, si prova per null e lo si inizializza quando necessario. Vedi la risposta di Willem Duncan sotto per una dimostrazione dell'uso. Forse stiamo confondendo schemi diversi qui, come nel commento di Daniel sulla stessa risposta. –