根据数据库中找到的日期修改输出缓存

时间:2014-02-20 00:23:27

标签: c# asp.net asp.net-mvc caching outputcache

我知道我可以为ASP.NET MVC控制器操作创建自定义outputcache属性。我想根据事件是否通过来更改输出缓存的持续时间。如果它已超过当前日期,那么持续时间将会更长。但是我需要检查数据库来执行此操作,但是我在控制器操作本身内进行相同的调用。无论如何在操作结果的末尾设置持续时间,因此它取决于在控制器操作中查询的事件的日期?我不想在输出缓存属性和控制器操作中进行两次调用。

1 个答案:

答案 0 :(得分:1)

您应该使用SqlCacheDependency类,例如:

查看:

<%@ OutputCache Duration="3600" SqlDependency="Northwind:Employees" VaryByParam="none" %>

<强> WEB.CONFIG:

 <caching>
      <sqlCacheDependency enabled = "true" pollTime = "60000" >
        <databases>
          <add name="northwind" 
            connectionStringName="Northwind"
            pollTime="9000000"
            />
        </databases>
      </sqlCacheDependency>
    </caching>

上面的示例显示了一个ASP.NET Web.config文件,该文件在SQL Server数据库表上启用了基于表的依赖项。