我正在使用SqlDependency和CacheManager类(企业库Cachcing块)在vb.net项目中创建一个缓存。
我已注册
OnDependencyChanged(ByVal sender As Object, ByVal e As SqlNotificationEventArgs)
从Sql Server 2005获取通知的方法。
现在的问题是,如果查询不包含任何WHERE子句,则缓存会成功创建,但如果我在查询中添加了where子句,则OnDependencyChanged()方法会在创建缓存后立即获取通知。
我需要建议是否可以在查询中使用WHERE子句进行缓存。 我的查询是(使用WHERE子句):
SELECT [DATABASES_ID]
,[DATABASENAME]
,[SERVERNAME]
FROM [dbo].[DATABASES]
WHERE datediff(dd,getdate(), [DATECREATED]) <=0
由于 Brijesh
答案 0 :(得分:1)
查看本文,了解SQLDepenency查询的限制
http://msdn.microsoft.com/en-us/library/aewzkxxh.aspx
特别注意:
声明不得使用任何声明 非确定性功能,包括 排名和窗口函数。
GETDATE()就是这样一个功能。