标签:
首次查询后会创建缓存,下次再查询时,会按查询条件找到对应的缓存
以下缓存为异步更新,过期后会按条件异步重新查询最新数据,有线程单独维护
缓存在两个周期未使用后,会自动清理
var query = Code.ProductDataManage.Instance.GetLamadaQuery();
//缓存会按条件不同缓存不同的数据,条件不固定时,慎用
query = query.Where(b => b.Id < 700);
int exp = 10;//过期分钟
var list = Code.ProductDataManage.Instance.QueryList(query, exp);
//默认过期时间为5分钟
//AllCache可重写条件和过期时间,在业务类中实现即可
//当插入或更新当前类型对象时,此缓存中对应的项也会更新
var list = Code.ProductDataManage.Instance.QueryFromAllCache(b => b.Id < 700);
var list = Code.ProductDataManage.Instance.AllCache;//指定一个数据源
#region 常规查找 多次计算和内存操作,增加成本
var list2 = list.Where(b => b.Id > 0);//执行一次内存查找
bool a = false;
if (a)
{
list2 = list.Where(b => b.Number > 10);//执行第二次内存查找
}
#endregion
#region 优化后查找 只需一次
CRL.ExpressionJoin query = new CRL.ExpressionJoin(b=>b.Id>0);
if (a)
{
query.And(b => b.Number > 10);//and 一个查询条件
}
list2 = query.Where(list);//返回查询结果 只作一次内存查找
#endregion标签:
原文地址:http://www.cnblogs.com/hubro/p/4286283.html