Me preguntaba acerca de algunos CodeWarning (ConstructorsShouldNotCallBaseClassVirtualMethods), y si hay una mejor manera de hacerlo. Tengo una clase de recopilador de registros simple, y estoy usando NHibernate para recuperar algunos de los objetos.Nhibernate - Inicializar listas - ¿Mejores prácticas?
Algunas veces creo objetos por mi cuenta (por supuesto) y los agrego a NHibernate para su persistencia. Cuál es la mejor manera de asegurarse de que Listas nunca sean NULAS.
Actualmente estoy haciendo esto, pero no parece "perfecto". Alguna idea sobre este tema?
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>();
}
}
sigo el mismo patrón, excepto que hago todo mi inicialización en el constructor. Además, generalmente es necesario establecer la referencia al padre en el método add, es decir logMessages.Add (log); log.LogRun = this; –
Voy un paso más allá y hago que mi getter devuelva una versión de solo lectura ... return logMessages.ToList() .AsReadOnly(); –
Webjedi
Jamie Ide: Cierto, si es uno con el padre, entonces ese ayudante es un gran lugar para establecerlo. Si es muchos para muchos, entonces no hay un padre. No estoy seguro sobre el contexto aquí, pero sospecho que tienes razón. Webjedi, me gusta su enfoque también. Es por eso que terminé en Enumerable. En mi caso, satisfizo todo lo que quería hacer con la colección. – Ben