Будет ли ваш DAL использоваться другими приложениями?Если нет, то вы можете включить кэширование DataSet
в Cache
или Session
в зависимости от того, какие функции необходимы для хранилища.
Session
будет специфичным для пользователя и будет очищеноистекает, когда сеанс пользователя истекает, что означает, что данные могут быть намного дольше, чем требуется. Дополнительная информация о сеансе
Cache
хороша тем, что срок ее действия истекает автоматически (используйте скользящий срок действия, если данные поиска не будут часто меняться), и вы можете сохранить с ним критерии поиска, чтобыдругие пользователи также могут использовать поиск, что, возможно, сэкономит ваши звонки в БД нескольким пользователям.Возможность доступа нескольких пользователей к этим данным является большим преимуществом перед использованием Session
. Дополнительная информация о кеше
Если вы планируете использовать свой DAL в другом apap, вы можете захотеть, чтобы приложение само выполняло кеширование.
Вам просто нужен обертка, например:
// Consider this psuedo code for using Cache
public DataSet GetMySearchData(string search)
{
// if it is in my cache already (notice search criteria is the cache key)
string cacheKey = "Search " + search;
if (Cache[cacheKey] != null)
{
return (DataSet)(Cache[cacheKey]);
}
else
{
DataSet result = yourDAL.DoSearch(search);
Cache[cacheKey].Insert(result); // There are more params needed here...
return result;
}
}