我们刚刚开始在DAL上使用LINQ to SQL,我们还没有真正提出用于缓存模型的标准。以前,我们使用的是基类“ DAL”,该类实现了一个缓存管理器属性,所有DAL类都继承自该属性,但现在我们没有了。我想知道是否有人提出了一种“标准”的方法来将LINQ缓存到SQL结果中?
如果可以的话,我们正在Web环境(IIS)中工作。我知道这很可能会成为一个主观的问题,但我仍然认为该信息将很有价值。
编辑: 为澄清起见,我不是在讨论缓存单个结果,而是在寻求一种体系结构解决方案,例如如何设置缓存,以便所有链接方法都使用相同的缓存体系结构。
一个快速的答案:使用存储库模式(请参阅Evans的域驱动设计)来获取您的实体。每个存储库都将缓存其将要保存的内容,最好是让每个存储库实例访问一个单例缓存(每个线程/请求将实例化一个新的存储库,但只能有一个缓存)。
上面的答案仅在一台机器上有效。为了能够在许多机器上使用它,请使用memcached作为您的缓存解决方案。祝你好运!