次の手法を使用して、データベースへの呼び出しをキャッシュします。この関数は、自分のリポジトリに存在します。非常にシンプルなキャッシング - これはo.kです。技術?
Public Shared Function GetByStoreURL(ByVal StoreURL As String) As Model.Partner
Dim key As String = StoreURL
If Current.Cache(key) Is Nothing Then
Dim objPartner = Model.DB.Select().From(Tables.Partner).Where(Partner.Columns.StoreURL).IsEqualTo(StoreURL.ToString).And(Partner.Columns.IsDeleted).IsNotEqualTo(1).ExecuteSingle(Of Partner)()
Current.Cache.Add(key, objPartner, Nothing, Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(60), CacheItemPriority.NotRemovable, Nothing)
End If
Return DirectCast(Current.Cache(key), Model.Partner)
End Function
この手法には欠陥がありますか?とてもシンプルに見え、それは素晴らしい仕事をしているようです。
ええ、私がキャッシュしているものは古くなる可能性があります – Slee