最好是(1)根据用例缓存表中的记录,或者(2)完整的对象图,或者(3)多个部分对象图?缓存什么对象?
让我澄清: 假设我有一个订单系统与工作流程。它包含以下对象:Order,OrderLine,Items,Customer,Workplan,Phase,Milestone,Activities等。
(1)我可以将Order表中的所有记录放入缓存中,并将OrderLines表中的所有记录放入缓存,以及Items表中的所有记录存入缓存等。可能是一个可怕的想法,因为你无法很好地查询缓存。 (2)我可以将Order对象,包括OrderLines,OrderItems,Customer,Workplan,Phases,Milestones等放入缓存中。我不喜欢这样,因为如果有些事情在Orderlines,Orderitems,Items,Customer,PHases,Milestones等中发生了变化,我必须更新缓存的Order对象。另一件事是我不知道缓存的对象有多大一个Order与10或15个其他对象有关系,并且这些对象都被加载到缓存的Order中。 (3)我可以将对象分割成一个Orderdetails和一个wokrflow的一部分。这样我有一个缓存的订单对象与所有相关的订单详细信息。我还有另一个Cached Order对象,其中包含所有相关的工作流程详细信息。
你们对缓存这些东西有什么建议吗?
(我希望这是明确的,否则请让我知道)
您正在编写您的应用程序的哪种语言? – 2011-05-22 15:06:34
我在C#中编写应用程序并使用实体框架进行数据访问 – Thomas 2011-05-22 15:07:54
您可能会发现,在Linq上投入一些时间减少了查询缓存的难度 – 2011-05-22 15:09:37