我在我的BLL中有方法与数据库交互并根据定义的条件检索数据。
返回的数据是常见问题解答对象的集合,其定义如下:
FAQID
, FAQContent
, AnswerContent
我想缓存返回的数据,以尽量减少数据库交互。现在
,根据用户选择的选项,我不得不返回的以下两种:ASP.NET数据缓存设计
- 勾住ShowAll:的所有数据。
- ShowAnsweredOnly: faqList.Where(!Answercontent = NULL)
- ShowUnansweredOnly: faqList.Where(!AnswerContent = NULL)
我的问题:
我应该只缓存中的所有从数据库返回的数据(例如FAQ_ALL
),并从缓存中过滤其他faqList模式(=仅与数据库交互一次,并为来自其他两种模式的缓存项目过滤数据)?或者我应该有3个缓存项目:FAQ_ALL
,FAQ_ANSWERED
和FAQ_UNANSWERED
(=与每个模式的数据库进行交互[3次])并返回每个模式的缓存项目?
如果有人告诉我每种方法的优缺点,我会很高兴。