Как сделать недействительным один элемент данных в кэше .net в VB - PullRequest
0 голосов
/ 03 июня 2010

У меня есть следующий код VB.NET для установки и чтения объектов в кеше для каждого пользователя (т. Е. Немного как сеанс)

Public Shared Sub CacheSet(ByVal Key As String, ByVal Value As Object)
    Dim userID As String = HttpContext.Current.User.Identity.Name

    HttpContext.Current.Cache(Key & "_" & userID) = Value
End Sub

Public Shared Function CacheGet(ByVal Key As Object)

    Dim returnData As Object = Nothing
    Dim userID As String = HttpContext.Current.User.Identity.Name

    returnData = HttpContext.Current.Cache(Key & "_" & userID)

    Return returnData

End Function

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

Как сделать так, чтобы элемент, который я установил, исчез или установил НИЧЕГО или НУЛЬ?

1 Ответ

0 голосов
/ 03 июня 2010

Удаление элемента из кэша так же просто, как вызов HttpContext.Current.Cache.Remove(Key), поэтому в вашем случае вы, вероятно, захотите:

Public Shared Sub CacheRemove(ByVal key As String)

    Dim userID As String = HttpContext.Current.User.Identity.Name

    HttpContext.Current.Cache.Remove(Key & "_" & UserID)

End Sub

Поскольку вы говорите, что при обновлении данных вы хотите, чтобы кэшированный элемент был удален, чтобы он повторно кэшировался с обновленными данными, вы можете захотеть взглянуть на использование объекта SqlCacheDependency . Это связывает кэш с вашей базой данных, так что при изменении ваших данных кэшируемый элемент автоматически обновляется, чтобы поддерживать его синхронизацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...