Assez simple problème qui est résolu en PHP en utilisant une variable statique..NET MVC - Stockage du résultat de la base de données lors d'un résultat de page unique?
private static $pages;
public function Pages() {
if($pages == null) {
$pages = new PageCollection();
$pages->findAll();
}
}
Partout dans mon code, j'utiliser des pages() :: someFindFunction() pour vous assurer que les résultats sont récupérés qu'une seule fois, et j'utiliser cette même collection.
Je veux la même chose dans mon application .NET MVC: utiliser quelque chose comme:
<%=MySite.Pages.findById(1).Title%>
Dans le code ci-dessous, si j'utilise une variable privée, ou si j'utilise une classe publique avec des variables partagées (doesn peu importe) ils sont tous les deux persistés pendant toute l'application.
Je veux qu'ils se chargent de la même manière que PHP, une fois par demande. Maintenant, où puis-je stocker l'équivalent .NET de privé statique$pages
, de sorte que le code ci-dessous fonctionne?
//what to do with $pages??
Public Module MySite
Public Function Pages() As PageCollection
If $pages Is Nothing Then
$pages.loadAll()
End If
Return $pages
End Function
End Module
Pour confirmer, les valeurs que vous souhaitez mettre en cache sont-elles spécifiques à l'utilisateur ou globales? –
Spécifique à l'utilisateur, une seule demande – Ropstah