Я написал класс CacheUtil для дозвукового 2.x ActiveRecord. Он основан на некотором коде, который кто-то разместил на старых дозвуковых форумах. (Это из форума, который был удален до удаления последнего форума. Вот почему форумы по программному обеспечению должны быть постоянными.) Вот пример метода поиска из кэша. Вы можете адаптировать его к SS3. Есть также вставки, fetchall, delete, clear и т. Д. Роб Коннери сказал в то время, что кэширование было проблематичным, и оно было специально исключено из ss2. Используя HttpRuntime.Cache, я разделяю кеш между веб-приложением и службой одновременно. Я считаю, что могу сделать это, так как это небольшое приложение, всегда на одном сервере.
public static RecordBase<T> Find<T, ListType>(object primaryKeyValue)
where T: RecordBase<T>, new()
where ListType: AbstractList<T, ListType>, new()
{
string key = typeof(T).ToString();
if(HttpRuntime.Cache[key] == null)
FetchAll<T, ListType>();
if(HttpRuntime.Cache[key] != null)
{
ListType collection = (ListType)HttpRuntime.Cache[key];
foreach(T item in collection)
{
if(item.GetPrimaryKeyValue().Equals(primaryKeyValue))
return item;
}
}
return null;
}