Вот шаблон, который я обычно использую. Если элемент существует в кеше, вы используете его, в противном случае вы создаете его и сохраняете в кеше:
Dim Obj = Cache("YourKeyHere")
Dim YourObj As DataSet
If Obj IsNot Nothing AndAlso TypeOf Obj Is DataSet Then
YourObj = DirectCast(Obj, DataSet)
Else
YourObj = New DataSet()
'...do your normal loading of your object here
Cache.Insert("YourKeyHere", YourObj)
End If
Если вместо этого вы хотите получать уведомление об истечении срока действия кэша, вы можете использовать onUpdateCallback