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