Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Обобщённый метод кэширования, который может использоваться для кэширования объектов любых ссылочных типов (например, коллекций объектов, полученных на основе сгенерированных в QP классов LINQ to SQL). Также поддерживается кэширование NULL-значений.

На основе метода построены специализированные методы кэширования в сборке Quantumart. dll.

Примечание: в веб-среде возвращаемый объект является общим для нескольких потоков, поэтому его изменение может привести к непредсказуемым последствиям. Поэтому при необходимости модифицировать такие объекты рекомендуется синхронизировать доступ к ним. В то же время использование таких объектов для чтения в большинстве случаев потокобезопасно (предварительно рекомендуется изучить документацию на конкретный тип).

Примечание: для кэширования значимого типа (value type) необходимо выполнить принудительную упаковку (например, число следует преобразовать в строку).

Параметры:

Название

Описание

fillAction

Ссылка на метод заполнений кэша. При использовании версии fillAction с параметром туда передается параметр key метода GetCachedEntity, что позволяет использовать один и тот же метод заполнения для получения нескольких объектов.

interval

Интервал кэширования.

Примечание: если значение не задано, то используется значение параметра InternalExpirationTime из конфигурационного файла веб-сайта.

key

Ключ, под которым данные хранятся в кэше.

При использовании версии fillAction с параметром может использоваться для изменения логики метода заполнения.


Пример использования:

НЕ нашли? Не то? Что вы ищете?

DBConnector cnn = new DBConnector();
List<Banner> banners = cnn. CacheManager. GetCachedEntity<List<Banner>>(pageAddress, 10, GetPageBanners);

В примере GetPageBanners – метод, возвращающий List<Banner>, который будет вызван только при заполнении кэша.

Метод GetCachedData

public DataTable GetCachedData(string queryString)
public DataTable GetCachedData(string queryString, double cacheInterval)

Выполняет указанный SQL-запрос и возвращает DataTable c сохранением результата в кэше.

Продолжительность кэширования определяется значением параметра cacheInterval. При отсутствии значения используется значение параметра InternalExpirationTime из конфигурационного файла веб-сайта.

Внимание: в веб-среде возвращаемая таблица является общей для нескольких потоков (пользовательских сессий), поэтому её изменение может привести к непредсказуемым последствиям в других потоках. Например, нельзя менять свойство RowFilter у DefaultView. Вместо этого нужно создать новый DataView на основе DataTable и менять свойство RowFilter у него.

Ключ кэширования строится на основании текста запроса. К ключу добавляется префикс, в который входят имя БД и имя сервера БД, что позволяет работать с несколькими экземплярами класса в одной веб-среде.

Примечание: при необходимости выполнить запрос без кэширования следует использовать метод GetRealData.

Метод GetCachedFileContents

public string GetCachedFileContents(string path)

Считывает текстовый файл по заданному пути и сохраняет его в кэше.

Внимание: при изменении файла кэш сбрасывается.

Методы для чтения данных статей

Метод GetContentData

public DataTable GetContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, bool cacheResult, double cacheInterval, bool useClientSelection, bool withReset)

public DataTable GetContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, bool cacheResult, double cacheInterval)

public DataTable GetContentData(string siteName, string contentName, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive)

public DataTable GetContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive)

Метод является упрощённым вариантом получения данных из контента (вместо более сложного способа для объекта «Publishing Container»).

Внимание: метод не выполняет автоматическую замену заполнителей, поэтому при использовании текстовых полей, которые могут содержать URL, нужно вызывать метод FormatField.

Примечание: метод возвращает из кэша не саму таблицу, а ее копию, так что её можно изменять.

Примечание: для поля «Связь» типов M2M и M2O метод возвращает данные, которые хранятся в таблице контента (идентификатор связи для M2M и идентификатор базового поля для M2O). Используя эти данные, можно получить реальные данные связей статьи вызовом метода GetContentItemLinkIDs.

Обязательные параметры:

Название

Описание

siteName

Имя сайта.

contentName

Имя контента.

whereExpression

Пользовательская часть предложения WHERE SQL-запроса.

Примечание: аналог поля «Фильтр» (Filter) для объекта «Publishing Container».

orderExpression

Предложение ORDER SQL-запроса.

Примечание: аналог поля «Выражение динамической сортировки» (Dynamic order expression) для объекта «Publishing Container».

startRow

Параметр постраничного вывода.

Примечание: аналог поля «Номер первой отображаемой записи» (First article number) для объекта «Publishing Container».

pageSize

Параметр постраничного вывода.

Примечание: аналог поля «Количество» (Count) для объекта «Publishing Container».

totalRecords

Количество записей с учётом фильтрации, но без учёта постраничного вывода.

useSchedule

Дополнительная фильтрация статей, для которых выставлено расписание.

Примечание: аналог поля «Использовать расписание статей» (Use Articles Schedule) для объекта «Publishing Container».

statusName

Имя статуса.

Примечание: аналог поля «Статус» (Status) для объекта «Publishing Container».

showSplittedArticle

Указывает, какую версию статьи возвращать.

При значении 0 возвращается опубликованная версия статьи (Live-режим), иначе – текущая (Stage-режим).

includeArchive

Определяет, включать ли архивные статьи в результат.

Примечание: аналог поля «Показать архивированные» (Show archived) для объекта «Publishing Container».


Необязательные параметры:

Название

Описание

fields

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

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

cacheResult

Указатель, следует ли кэшировать результат.

Значение по умолчанию – false.

cacheInterval

Продолжительность кэширования.

Примечание: по умолчанию используется значение параметра InternalExpirationTime из конфигурации веб-сайта.

useClientSelection

При значении true фильтрация, сортировка и постраничный вывод осуществляются на стороне клиента, что позволяет уменьшить объём кэшируемых данных.

Примечание: фильтрация на стороне клиента поддерживает только часть возможностей серверной.

Значение по умолчанию – false.

withReset

При значении true для вызова осуществляется принудительный сброс кэша и его повторное заполнение.

Значение по умолчанию – false.


Пример:

long total = 0;
DataTable dt = cnn. GetContentData("Sandbox NET", "Events", "[content_item_id], [Title]", "[Location] = 1662", "[Modified] DESC", 1, 20, ref total, 1, "Published", 0, 0);

Метод GetCachedContentData

public DataTable GetCachedContentData(string siteName, string contentName, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive)
public DataTable GetCachedContentData(string siteName, string contentName, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, bool useClientSelection)
public DataTable GetCachedContentData(string siteName, string contentName, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, double cacheInterval)
public DataTable GetCachedContentData(string siteName, string contentName, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, double cacheInterval, bool useClientSelection)
public DataTable GetCachedContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive)
public DataTable GetCachedContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, bool useClientSelection)
public DataTable GetCachedContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, double cacheInterval)
public DataTable GetCachedContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, double cacheInterval, bool useClientSelection)
public DataTable GetCachedContentData(string siteName, string contentName, string fields, string whereExpression, string orderExpression, long startRow, long pageSize, ref long totalRecords, byte useSchedule, string statusName, byte showSplittedArticle, byte includeArchive, bool useClientSelection, bool withReset)

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36