Сценарий:
- CustomerEntity представляет таблицу Customer в базе данных.
- Есть несколько запросов, которые возвращают CustomerEntities (список и один клиент)
Как можно «подделать» (прокси?) CustomerEntity, чтобы все запросы пытались попастькэшированные объекты CustomerEntities.Очевидно, что в каждом запросе я могу использовать шаблон кэширования в стороне для каждого отдельного запроса, но я хочу использовать его для всей таблицы Customer независимо от запроса.
(Cache-aside)
private static readonly DataCache cache = CacheUtil.Instance.Cache;
public List<Customer> GetCustomers()
{
string cacheKey = "test";
var list = (List<Customer>)cache.Get(cacheKey);
if (list == null)
{
using (var context = DataObjectFactory.CreateContext())
{
var customers = context.Customer.Where(w => w.CustomerId > 10).ToList();
list = new List<Customer>();
foreach (var customer in customers)
list.Add(customer);
cache.Put(cacheKey, list);
return list;
}
}
else
{
return list;
}
}