我需要在启用缓存的情况下手动清除 SqlDataSource 上的缓存。我尝试设置 EnableChaching = false 和 CacheDuration = 0 (以及 = 1),但似乎没有一个会使缓存中已有的内容过期 - 尽管它们似乎确实阻止了新的 SELECT 被缓存。
如何手动使该缓存过期?
Thanks.
我今天刚刚开始研究这个问题并发现了这篇文章,这看起来像是最好的解决方案:
以编程方式使 SqlDataSource 缓存失效的简单方法 http://beatgates.blogspot.com/2009/11/simple-way-to-invalidate-sqldatasource.html
<asp:SqlDataSource ID="x" EnableCaching="True" CacheKeyDependency="MyCacheDependency"/>
protected void Page_Load(object sender, EventArgs e)
{ // Or somewhere else before the DataBind() takes place
if (!IsPostBack)
{
//prime initial cache key value if never initialized
if (Cache["MyCacheDependency"] == null)
{
Cache["MyCacheDependency"] = DateTime.Now;
}
}
}
// Evict cache items with an update in dependent cache:
Cache["MyCacheDependency"] = DateTime.Now;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)