2012-03-28 12 views
5

Ho un'entità POCO su cui ho definito un costruttore personalizzato. Ho anche implementato il costruttore predefinito in modo che Entity Framework possa idratare correttamente l'oggetto quando richiedo una copia dal database.Costruttore privato sull'entità POCO che impedisce il caricamento lento

Questo sembra funzionare bene ma quando imposto il costruttore predefinito su privato (per forzare il mio codice a utilizzare la versione personalizzata) e richiede un'entità dal database, non riesco a navigare sulle entità correlate come sono tutti nulli.

questo sembra essere un problema lazy loading così ho potuto cambiare il mio repository per carico ansiosi gli oggetti correlati di cui ho bisogno, ma chiedo se c'è un modo migliore per nascondere il costruttore di default dal codice client pur consentendo Entity Framework per pigri caricare?

risposta

9

se si definisce costruttore privato si violate requirements per la creazione di proxy POCO responsabile di caricamento pigro: classe di dati

Un personalizzato deve avere un costruttore pubblico o protetto che non dispone di parametri.

Quindi l'opzione migliore per voi è utilizzare il costruttore protetto o non utilizzare il caricamento lazy.

+0

Il costruttore protetto funziona bene, grazie. – James

Problemi correlati