2009-05-08 3 views
-5

Exemple:Comment récupérer des données personnalisées de l'utilisateur dans le contexte du contrôleur après avoir découplé modèle de l'utilisateur du principal modèle de domaine qui représente personne

[Authorize] 
public ActionResult Index() 
{ 
    var person = _userPersonalizationService.GetPersonForUser(User.Identity.Name); 
    var campaigns = _campaignRepository.GetCampaignsByCompanyId(person.Company.CompanyId); 
    return View(campaigns); 
} 

Fondamentalement, chaque utilisateur est lié à un modèle de personne, et dans ce cas, Je veux récupérer les campagnes de la société associée à un utilisateur.

Comment encombreriez-vous ce mécanisme de récupération afin que je n'ai pas besoin d'appeler la base de données à chaque fois et d'avoir un UserPersonalizationService dans les contrôleurs? Créer un UberController de base à partir duquel chaque contrôleur est dérivé? Dois-je sauvegarder les données de la personne de l'utilisateur autorisé dans le conteneur de session?

Répondre

0

Je le stockerais dans le cache .. puis attacher une dépendance de cache à la base de données, dans le cas où ces campagnes dans la base de données changeraient, la dépendance se casserait et les campagnes seraient rafraîchies dans le cache.