SqlClient CacheName - свойствоNemiro.Data.dll
Имя ключа элемента кэша, если нужно указать определенный ключ (по умолчанию, формируется автоматически для конкретного запроса).

Пространство имён: Nemiro.Data.Sql
Сборка: Nemiro.Data (в Nemiro.Data.dll) Версия: 2.11.4.126 (2.11.4.126)
Синтаксис

public string CacheName { get; set; }

Значение свойства

Тип: 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.

См. также