我知道我可以为 ASP.NET MVC Controller 操作创建自定义输出缓存属性。我想根据事件是否通过来更改输出缓存的持续时间。如果它已经过了当前日期,那么持续时间会更长。但是我需要检查数据库来执行此操作,但是我在 Controller 操作本身中进行了相同的调用。无论如何要在操作结果结束时设置持续时间,以便它取决于在 Controller 操作中查询的事件的日期?我不想进行两次调用,一次在输出缓存属性和 Controller 操作中。
最佳答案
你应该为此使用 SqlCacheDependency
类,例如:
View :
<%@ 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 数据库表的基于表的依赖项。
关于c# - 根据在数据库中找到的日期修改输出缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895584/