1

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

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

1) 如果我执行 BakeriesTableRetrieval.GetRows(new BakeriesTableEqualityCondition.CityId(CityIds.Boston)),当我稍后执行 BakeriesTableRetrieval.GetRowMatchingId(idOfSomeBakeryInBoston) 时,数据库缓存是否会神奇地不必往返?

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

4

1 回答 1

1

当您使用 EWL 自己的 Web 框架 (EWF) 时,或者如果您位于DataAccessState.Current.ExecuteWithCache块内时,我的以下回答适用。

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

  2. 使用DataAccessState.Current.GetCacheValue.

于 2015-06-16T14:32:05.567 回答