Actually, i found this at stackoverflow (at least - the idea):
public static T Get
(string cacheKey, HttpContextBase context, Func getItemCallback)
where T : class
{
T item = Get(cacheKey, context);
if (item == null) {
item = getItemCallback();
context.Cache.Insert(cacheKey, item);
}
return item;
}