Pregunta

i tienen diferentes tipos de datos personalizados en mi aplicación web para mapear algunos datos de la base de datos.

algo como:

Person
Id
Name
Surname

y necesito una lista de personas en la mayor parte de las páginas de mi solicitud

i estaba pensando para crear una propiedad getter que obtiene la lista de personas a partir de la base de datos y almacenar en caché de esta manera no tengo que llamar a la base de datos cada vez

algo así como (pseudo código)

public List<Person> Persons 
{
   get { return if cache != null  return List of Persons from cache  else get from the database;}
}

Por dónde poner este captador? en mi definición de la clase Persona o en mi página base (página desde la que todas las demás páginas heredan)

Gracias

¿Fue útil?

Solución

Creo que poner en su página base sería mejor opción.

En función de la arquitectura de la aplicación, poniendo proceso código relacionado en sus clases de dominio podría ser un problema. Algunos lo utilizan en DDD (diseño de dominio impulsada) aplicaciones de tipo embargo.

Mejor aún, por lo general tratan de ocultar los detalles de implementación en una clase de servicio. Usted podría tener una clase PersonService que contendría el método anterior y todas las operaciones relacionadas con la persona. De esta manera, cualquier página que requiera información de la persona que simplemente llamar a la PersonService; y se puede concentrar el código de la página de código relacionado interfaz gráfica de usuario.

Otros consejos

No creo que usted debe poner en su clase Person ya que accede a la base de datos y HttpContext.Current.Cache. Por otra parte creo que se debe hacer un método y no una propiedad, dar a entender que este pueden ser un "largo" la operación. Así, una de las dos opciones, me lo puso en la clase Page base.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top