SqlClient CacheDuration - свойствоNemiro.Data.dll
Продолжительность хранения записи в кэше, в секундах. Если это свойство имеет значение 0 или меньше, кэширование данных не выполняется. Значение по умолчанию - ноль, если иное не указано в параметре NeData:Sql:CacheDuration файла конфигурации.

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

public int CacheDuration { get; set; }

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

Тип: Int32
Заметки

Кэширование выполняется только при использовании методов получения данных, таких как: GetData , GetTable , GetRow , ExecuteScalar  (включая перегрузки).

Результаты выполнения запроса к базе данных методом ExecuteNonQuery  (включая перегрузки) не выполняются.

Значение для свойства CacheDuration можно указать в файле конфигурации в параметре NeData:Sql:CacheDuration (для веб-приложений) или в параметре NeDataSqlCacheDuration (для приложений Windows), однако лучше этого не делать, поскольку тогда все запросы к базе данных будут выполняться с указанной продолжительностью кэширования результатов, что может привести к некоторым проблемам в работе вашего приложения (зависит от типа приложения).

Если кэш настроен неправильно или недоступен, то кэширование выполняться не будет.

WebCache может быть использован только в приложениях ASP .NET и не работает в потоках.

MemoryCache может неправильно работает в приложениях ASP .NET и предназначен только для использования в приложениях Windows.

Примеры

В следующем примере выполняется запрос к базе данных методом GetTable . Результат выполнения запроса кэшируется на 3 600 секунд (1 час).

using (SqlClient client = new SqlClient())
{
  // кэширование результатов в файлом кэше на 1 час
  client.CacheDuration = 3600; // 60 секунд * 60 минут = 3 600 секунд = 1 час 
  // формирование запроса
  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);
}
См. также