Mi chiedevo solo alcuni CodeWarning (ConstructorsShouldNotCallBaseClassVirtualMethods) e se c'è un modo migliore per farlo. Ho una semplice classe di log collector e sto usando NHibernate per recuperare alcuni oggetti.Nhibere - Inizializza elenchi - Best Practice?
Alcune volte creo oggetti da solo (ovviamente) e li aggiungo a NHibernate per la persistenza. Qual è il modo migliore per assicurarsi che gli elenchi non siano mai NULL.
Attualmente sto facendo questo, ma non sembra "perfetto". Qualche idea su questo argomento?
public class LogRun
{
public virtual int Id { get; private set; }
public virtual DateTime StartTime { get; set; }
public virtual DateTime EndTime { get; set; }
public virtual IList<Log> LogMessages { get; set; }
public virtual int LogMessageCount { get { return LogMessages.Count; } }
public LogRun()
{
LogMessages = new List<Log>();
}
}
seguo lo stesso schema, tranne che faccio tutto il mio inizializzazione nel costruttore. Inoltre, è tipicamente necessario impostare il riferimento al genitore nel metodo add, cioè logMessages.Add (log); log.LogRun = this; –
Faccio un passo avanti e restituisco al mio getter una versione di sola lettura ... return logMessages.ToList() .AsReadOnly(); –
Webjedi
Jamie Ide: Vero, se è uno-molti con un genitore, allora quell'assistente è un ottimo posto per impostarlo. Se è un multiplo per molti, allora non c'è un genitore. Non sono sicuro sul contesto qui, ma altamente sospetto che tu abbia ragione. Webjedi, mi piace anche il tuo approccio. Ecco perché sono finito su Enumerable. Nel mio caso, ha soddisfatto tutto ciò che volevo fare con la collezione. – Ben