如何在EWL中的请求中缓存内容?

时间:2015-06-15 16:10:52

标签: c# caching data-access-layer enterprise-web-library

在请求中缓存数据的最佳做法是什么?

更具体地说,假设我有一个包含多行数据的表,每行需要进行单独的数据库查询以获取面包店的详细信息。我知道,在请求结束时,我将不得不获取波士顿每个面包店的数据。在我向表中添加数据之前,我想一次性选择我需要的所有面包店,所以我有它们。

1)如果我做了BakeriesTableRetrieval.GetRows(新的BakeriesTableEqualityCondition.CityId(CityIds.Boston)),那么当我后来做BakeriesTableRetrieval.GetRowMatchingId(idOfSomeBakeryInBoston)时,数据库缓存是否神奇地不必进行往返?

2)假设1是假的,或者我有一个不同的情况,我只需要缓存自己的东西,我该如何最好地保留自己的预请求缓存?

1 个答案:

答案 0 :(得分:1)

以下我的回答适用于您使用EWL自己的网络框架(EWF),或者如果您在DataAccessState.Current.ExecuteWithCache区域内的其他情况。

  1. 是的,只要您使用表检索,数据库缓存就会自动消除这些单行查询。使用查询检索,如果实现updateSingleRowCaches部分方法,则可以完成相同的操作。

  2. 使用DataAccessState.Current.GetCacheValue