2014-03-19 4 views
21

Ich arbeite an der Web-Anwendung mvc4. Ich möchte einige Datenbankabfragen Ergebnisse und Ansichten auf der Serverseite zwischenspeichern. Ich benutzteWie Cache Daten auf Server in asp.net mvc 4?

HttpRuntime.Cache.Insert() 

, aber es speichert die Daten auf der Client-Seite. Bitte helfen Sie.

Antwort

38

Ich verwende MemoryCache, um Abfrageergebnisse zu speichern, und es funktioniert soweit gut.
Hier sind ein paar Links, die ich verwendet habe, um es zu implementieren.
- Using MemoryCache in .NET 4.0 (codeproject)
- Using MemoryCache in .NET 4.0 (blog entry)

Als ich sie jetzt lesen, ich finde sie nicht so klar, vielleicht gibt es eine bessere Verbindung, die ich irgendwo verloren haben.
Hier ist eine Probe von meinem Code, den ich hoffe, klar genug ist, so dass Sie sehen, wie es

public static class AgencyCacheManager 
{ 
    private static MemoryCache _cache = MemoryCache.Default; 

    public static List<RefAgency> ListAgency 
    { 
     get 
     { 
      if (!_cache.Contains("ListAgency")) 
       RefreshListAgency(); 
      return _cache.Get("ListAgency") as List<Agency>; 
     } 
    } 

    public static void RefreshListAgency() 
    { 
     var listAgency = GetAllComplete(); 

     CacheItemPolicy cacheItemPolicy = new CacheItemPolicy(); 
     cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddDays(1); 

     _cache.Add("ListAgency", listAgency, cacheItemPolicy); 
    } 
} 

Und die Liste aus dem Cache

public Agency FindBy(string agencyId) 
{ 
    return AgencyCacheManager.ListAgency.SingleOrDefault(x => x.AgencyPartnerCode == agencyId); 
} 
+0

große, einfache, Erklärung abrufen funktioniert. Vielen Dank! – leahcimp