我目前正在利用下面的代码在每天午夜刷新缓存.它运行良好,但需求会发生变化,以便在数据集中的项更改时需要更新缓存.我知道有一个CacheDependency类用于检查文件是否已更改以刷新缓存 - 但我不知道这是如何适用于我想要做的.当数据集发生变化时,有人可以帮助我指导正确的方向更新缓存吗?谢谢.
try
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["localDb"].ConnectionString);
DataSet ds = new DataSet();
if (Cache["ds"] == null)
{
conn.Open();
SqlCommand sqlComm = new SqlCommand("SELECT EmployeeID, NationalIDNumber, ContactID, LoginID, ManagerID, Title, BirthDate, MaritalStatus, Gender FROM HumanResources.Employee", conn);
SqlDataAdapter adapter = new SqlDataAdapter(sqlComm);
adapter.Fill(ds);
Cache.Insert("ds", ds, null, DateTime.Today.AddDays(1), TimeSpan.Zero);
conn.Close();
}
GridViewEmployees.DataSource = (DataSet)Cache["ds"];
GridViewEmployees.DataBind();
}
catch (Exception)
{
throw;
}
Run Code Online (Sandbox Code Playgroud)
我想你已经听过并读过SqlCacheDependency课,不是吗?好吧,如果你没有我建议你这样做.它会带给你一个微笑.;)
在过去(pre .net 2.0和pre SQL 2005)中,还有一种通常CacheDependency类的技巧,以便您在需要它的表上创建插入/更新的触发器,几乎(重新)保存了一个空文件(因此它尽可能快)在某个文件夹中,您将缓存依赖于该特定文件,从而在数据更改时使缓存失效.我听说它工作正常.
| 归档时间: |
|
| 查看次数: |
6011 次 |
| 最近记录: |