Решение Cache для Dapper при использовании хранимых процедур (MSSQL)

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

Вопрос

Я использую Dapper в основном для вызова хранимых процедур в базе данных MSSQL 2008 R2. У меня нет классов, которые сопоставляются с таблицами базы данных. Большая часть данных заканчивается в IEnumerable <Dynamic> и передается в сетку на экране.

Есть ли готовое к использованию решение для буферизации данных, которое я мог бы использовать? (Мне нужно использовать его на MVC).

Данные в базе данных являются как статическими, так и динамическими по своей природе. Я использую модель репозитория для доступа к данным.

Ответ эксперта

Dapper не включает встроенные функции кэширования данных (хотя он использует обширное кэширование для уровня метапрограммирования): он нацелен непосредственно на материал ADO.NET - однако вы можете использовать практически любое готовое кэширование компонент, включая кеш времени выполнения HTTP ( HttpContext.Current.Cache ) или новые реализации ObjectCache т. д. Поскольку они просто берут объекты, они должны работать нормально.

Если вы используете распределенный кеш (возможно, через app-fabric, redis или memcached), вам понадобятся данные для сериализации. В этом случае я настоятельно рекомендую использовать формальные типы POCO для привязки, а не dynamic API. В качестве примера мы используем dapper для заполнения POCO, которые аннотируются маркерами protobuf-net для сериализации, и сохраняются через BookSleeve для redis. Что звучит более сложно, чем на самом деле.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow