我使用DataSet
在SqlCacheDependency
内缓存结果。
在页面加载中调出一个简单的代码
string conn= WebConfigurationManager.ConnectionStrings["NorthwindEntities"].ConnectionString;
SqlConnection con = new SqlConnection(conn);
string query = "SELECT EmployeeID, FirstName, LastName, City FROM dbo.Employees";
SqlCommand cmd = new SqlCommand(query, con);
SqlDataAdapter dadapter= new SqlDataAdapter(cmd);
DataSet用法:
DataSet ds = new DataSet();
dadapter.Fill(ds, "Employees");
将其缓存为:
SqlCacheDependency empDependency = new SqlCacheDependency(cmd);
Cache.Insert("Employees", ds, empDependency, DateTime.Now.AddMinutes(10),Cache.NoSlidingExpiration);
但是,我运行页面,数据加载在网格视图中,然后我从SQLServer本身手动修改。我重新加载页面,并且可以立即看到更改的数据。
哪条线路正在创建问题或是否有任何遗漏?
答案 0 :(得分:1)
这里有问题。
SqlDependency通知系统未启动并正在运行。通过正确设置Global.asax文件Application_Start
方法解决了这个问题。
protected void Application_Start()
{
string connString =
ConfigurationManager.ConnectionStrings["ProductionSystem"].ConnectionString;
SqlDependency.Start(connString); // starting the listener service
}
这link帮助了我。