Cache-Lösung für Dapper bei Verwendung gespeicherter Prozeduren (MSSQL)

asp.net-mvc-3 c#-4.0 dapper sql-server-2008

Frage

Ich verwende Dapper hauptsächlich zum Aufrufen gespeicherter Prozeduren in der Datenbank MSSQL 2008 R2. Ich habe keine Klassen, die zu Datenbanktabellen gehören. Die meisten Daten landen in IEnumerable <Dynamic> und werden auf dem Bildschirm an das Raster übertragen.

Gibt es eine gebrauchsfertige Lösung für die Datenpufferung, die ich verwenden könnte? (Ich muss es auf der MVC verwenden).

Die Daten in der Datenbank sind sowohl statischer als auch dynamischer Art. Ich verwende das Repository-Modell, um auf die Daten zuzugreifen.

Expertenantwort

Dapper enthält keine eingebauten Daten- Caching-Funktionen (obwohl es intern umfangreiche Zwischenspeicherung für die Meta-Programmierungsschicht verwendet): Es zielt direkt auf die ADO.NET-Sachen ab - jedoch könnte man so ziemlich jedes handelsübliche Caching verwenden B. den HTTP-Laufzeitcache ( HttpContext.Current.Cache ) oder die neueren ObjectCache Implementierungen. Weil diese nur Objekte nehmen, sollte es gut funktionieren.

Wenn Sie einen verteilten Cache verwenden (z. B. über app-fabric, redis oder memcached), müssen die Daten serialisierbar sein. In diesem Szenario würde ich dringend vorschlagen, formale POCO-Typen für die Bindung anstelle der dynamic API zu verwenden. Als Beispiel verwenden wir Dapper, um POCOs zu füllen, die mit ProtoBuf-Net-Markern für die Serialisierung annotiert und über BookSleeve zum Redistieren gespeichert werden. Was komplizierter klingt als es tatsächlich ist.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow