Обновляем кеш LinqToSql

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

В этом случае при выполнении выборки данных следует произвести очистку кеша.

Операция очистки кеша выполняется при помощи метода Refresh контекста подключения к базе данных. В основном используются две его перегрузки. Обе они принимают два параметра.

Первый из них — режим обновления. Имеет тип System.Data.Linq.RefreshMode. Для обновления кеша нужно установить значение OverwriteCurrentValues;

Второй – объект сущности базы данных для которого требуется обновить кеш или набор таких объектов в формате IEnumerable.

Ниже приведён пример использования метода Refresh для набора объектов.

var services = _dc.Services.OrderBy(t => t.ServiseName);
_dc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, services);

В результате набор services будет содержать только актуальную версию данных.

Для единичного объекта метод Refresh применяется аналогичным образом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *