Question

J'ai différents types de données personnalisés dans mon application Web pour la carte des données de la base de données.

quelque chose comme:

Person
Id
Name
Surname

et j'ai besoin d'une liste de personnes dans la plupart des pages de mon application

Je pensais créer une propriété de lecture qui obtient la liste des personnes de la base de données et de stocker dans le cache de cette manière je n'ai pas appeler la base de données à chaque fois

quelque chose comme (code de pseudo)

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

Où vais-je mettre ce getter? dans ma définition de la classe de personne ou dans ma page de base (page à partir de laquelle toutes les autres pages hériteront)

Merci

Était-ce utile?

La solution

Je pense la mettre dans votre page de base serait une meilleure option.

En fonction de votre architecture d'application, un processus mettant code lié dans vos classes de domaine pourrait être un problème. Certains utilisent dans DDD (conception pilotée par le domaine) de type applications bien.

Mieux encore, je l'habitude d'essayer de cacher les détails d'implémentation dans une classe de service. Vous pourriez avoir une classe PersonService qui contiendra votre méthode ci-dessus et toutes les opérations liées à la personne. De cette façon, une page de demande de renseignements de personne serait tout simplement appeler le PersonService; et vous pouvez vous concentrer votre code de page sur le code lié à l'interface graphique.

Autres conseils

Je ne pense pas que vous devriez le mettre dans votre classe Person car il accède à la base de données et HttpContext.Current.Cache. De plus, je pense que vous devriez en faire une méthode et non une propriété, impliquer que ce peut une opération « longue ». Ainsi, des deux options, je le mettrais sur la classe de base Page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top