【发布时间】:2011-02-07 04:17:13
【问题描述】:
我的 BLL 中有与数据库交互并根据定义的条件检索数据的方法。
返回的数据是一个FAQ对象的集合,定义如下:FAQID,
FAQContent,
AnswerContent
我想缓存返回的数据以最小化数据库交互。
现在,根据用户选择的选项,我必须返回以下任一选项:
- ShowAll:所有数据。
- ShowAnsweredOnly: faqList.Where(Answercontent != null)
- ShowUnansweredOnly: faqList.Where(AnswerContent != null)
我的问题:
我是否应该仅缓存从 DB 返回的所有数据(例如 FAQ_ALL)并从缓存中过滤其他 faqList 模式(= 只与 DB 交互一次并从缓存项中过滤其他两种模式的数据) ?或者我应该有 3 个缓存项:FAQ_ALL、FAQ_ANSWERED 和 FAQ_UNANSWERED(=每种模式与数据库交互 [3 次])并返回每种模式的缓存项?
如果有人告诉我每种方法的优缺点,我会很高兴。
【问题讨论】:
标签: asp.net caching architecture