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

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

我知道我可以为 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/

相关文章:

c# - 设置 Azure Web App 以接受客户端证书

c# - 无法从程序集 'AgencySystem' 加载类型 'EPaymentInvoicing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

c# - WCF - 如何产生自定义错误?

c# - 将值从 ASP.NET 页面发布到 C#

asp.net - ASP.Net 中的 JWT token 异常(生命周期验证失败。 token 缺少过期时间。)

c# - HttpContext.Current.Response.AddHeader() 未设置 Content-Type header

jQuery 不显眼的 Ajax 表单在 'per-table-row' 场景中不起作用

c# - 无法序列化对象类型 System.Double[,]?

c# - 通过反射从对象获取索引值

c# - Visual Studio Selenium 测试启动本地项目