我在SQL Server 2012中使用EF 6。
我正在尝试使用SqlDependency
刷新类库(DLL)中的缓存数据。
根据我发现的任何指南,我有以下内容,但似乎无效,我没有错误。
使用sa
登录。
我正在通过单元测试代码测试这一切,不确定通知是不是即时的,SqlDependency.OnChange
中的断点从未触发过。
但即使我故意减慢更改后的内容,OnChange
仍未触发。
一旦我进行了相关的数据更改,我怎么知道SQL Server在db中生成通知?
更新
最初我在SQL日志中发现“需要主密钥加密”。通过创建该密钥,日志不再发生,但仍未触发OnChange
。
答案 0 :(得分:1)
经过多次试验,并基于1篇重要文章: http://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events
1)初始化SqlDependency后,必须执行SqlCommand,可以简单地调用sqlCmd.ExecuteNonQuery()。
2)触发OnChange事件后,必须删除事件处理,重新创建新的SqlCommand和SqlDependency,重新绑定事件处理,并遵循规则#1