0

我有一个即将完成的电子商务MVC4项目。我用outputcache使用sqldependecy。但是,这最好的方法是什么? 产品详细页面?有产品清单的 类别页面? 过滤页面? bla bla用于电子商务项目的Mvc 4缓存数据库

你能帮我缓存吗? (我在我的项目中使用SQL Server与LINQ到SQL) 示例;

[的OutputCache(持续时间= Int32.MaxValue,的SqlDependency = “演示:产品”)]

公共的ActionResult的GetProducts(INT ID,INT lastid,串滤波器) {

我得到从数据sql与参数。

}

是对的还是应该缓存查询数据bla bla? lastid用于分页。过滤器数据的过滤器参数。 ID意味着categoryid

回答

0

让我们从头开始:我假设你想优化你的网上商店,这就是为什么你需要一些缓存机制。 您已选择使用OutputCache,因为它易于使用,并且可直接使用。 正如您可能知道OutputCache缓存来自服务器的响应,因此它不直接与缓存sql查询或一般数据连接。因此,我首先推荐考虑你真正需要什么类型的缓存 - 输出缓存(位于System.Web.Configuration.OutputCacheSection),数据缓存(位于System.Web.Caching.Cache)还是两者?

我们假设您已经选择了OutputCache。您需要确保所有可以更改服务器响应的内容都应该作为缓存参数发送。所以在产品页面的情况下,这可能至少是一个ProductId,在CategoryPage(ProductListPage)的情况下,这可能是CategoryId,PageId,PageSize,一些排序参数,过滤器参数(如果使用过滤)等。

您需要考虑的参数越多,耗时越长,将缓存所有可能的参数组合。 作为一个例子,我会使用产品页面的OutputCaching,但我会考虑将其用于CategoryPage(ProductListPage),尤其是在使用过滤器,分页,排序等情况下。

+0

感谢您的回复。正如你所说,我需要优化我的网上商店。使用sql依赖性很容易使用outputcache机制。但正如你所说,由于寻呼和过滤bla bla,它对于类别(产品列表)页不明智。在这种情况下,我应该使用什么?如果我缓存每个页面查询中的命令,我需要再次缓存。在输出缓存中相同。我应该用sqldependecy使用varybyparam吗?我需要数据缓存。 – hozkaya

相关问题