Сборка: Nemiro.Data (в Nemiro.Data.dll) Версия: 2.11.4.126 (2.11.4.126)
Значение свойства
Тип: StringПо умолчанию, имя ключа записи кэша формируется автоматически в виде хеш-суммы на основе ConnectionString, CommandText и Parameters выполняемого запроса.
При необходимости, вы можете указать любое удобное для вас имя записи кэша. Это может быть полезно для реализации механизмов ручного управления кэшем. Например, если нужно будет удалить определенную запись кэша при внесении изменений в зависимые данные.
Стоит отметить, что в файлом кэше (где имена файлов являются ключами записи кэша) указанное в CacheName может быть проигнорировано, если значение содержит недопустимые для файловой системы символы, либо слишком длинное. Однако на работоспособности это не отразится и не вызовет никаких неудобств, просто значение CacheName будет преобразовано в хеш-сумму.
ВАЖНО не забывать менять CacheName, если с одним экземляром класса SqlClient выполняется серия запросов.
В следующем примере устанавливается индивидуальное имя записи кэша.
using (SqlClient client = new SqlClient()) { // кэширование результатов в файлом кэше на 1 час client.CacheDuration = 3600; // 60 секунд * 60 минут = 3 600 секунд = 1 час client.CacheType = CachingType.File; // имя записи кэша client.CacheName = "MyCacheEntry"; // формирование запроса client.CommandText = "SELECT * FROM forum_messages"; // выполнение запроса var table = client.GetTable(); // вывод результатов Console.WriteLine("Получено данных: {0}", table.Rows.Count); Console.WriteLine("Время выполнения запроса: {0}", client.LastQueryTime); Console.WriteLine("Результат получен из кэша: {0}", client.LastQueryResultsFromCache); }
После выполнения этого кода, в папке cache должны появиться файлы записи кэша с именами MyCacheEntry.policy и MyCacheEntry.cache.
Зная имя записи кэша, запись можно, например, удалить из кэша, как показано в примере ниже.
Nemiro.Data.Caching.CacheManager.FileCache.Remove("MyCacheEntry");
В этом примере, доступ к файловому кэшу осуществляется через вспомогательный класс CacheManager.