Solution de cache pour Dapper lors de l'utilisation de procédures stockées (MSSQL)

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

Question

J'utilise principalement Dapper pour appeler des procédures stockées dans la base de données MSSQL 2008 R2. Je n'ai pas de classes qui mappent aux tables de base de données. La plupart des données se retrouvent dans IEnumerable <Dynamic> et sont transmises à la grille à l'écran.

Existe-t-il une solution prête à l'emploi pour la mise en mémoire tampon des données que je pourrais utiliser? (Je dois l'utiliser sur le MVC).

Les données de la base de données sont à la fois statiques et dynamiques. J'utilise le modèle de référentiel pour accéder aux données.

Réponse d'expert

Dapper n'inclut aucune fonctionnalité de mise en cache de données intégrée (bien qu'il utilise une mise en cache étendue en interne pour la couche de méta-programmation): il s'adresse carrément aux composants ADO.NET. composant, y compris le cache d'exécution HTTP ( HttpContext.Current.Cache ), ou les implémentations ObjectCache plus ObjectCache . Parce que ceux-ci ne prennent que des objets, cela devrait fonctionner correctement.

Si vous utilisez un cache distribué (peut-être via app-fabric, redis ou memcached), les données doivent être sérialisables. Dans ce scénario, je suggère fortement d'utiliser des types POCO formels pour la liaison, plutôt que l'API dynamic . À titre d'exemple, nous utilisons en interne dapper pour renseigner les POCO qui sont annotés avec des marqueurs protobuf-net pour la sérialisation et stockés via BookSleeve à redis. Ce qui semble plus compliqué qu'il ne l'est réellement.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi