【发布时间】:2011-05-02 15:26:34
【问题描述】:
我正在使用 SqlDependency 来监视数据库中的更改。假设这些是股票报价,以使示例易于理解。应用程序还使用(另一个)SqlDependeny-Object 来监视对静态数据的更改,这些数据缓存在应用程序中。
我所做的是在启动应用程序时通过SqlDependency.Start() 启动依赖关系,并在关闭应用程序时调用SqlDependeny.Stop。到目前为止一切正常。
现在,当用户选择股票代码时,会设置另一个 SqlDependency 并通知我更改,我可以对其采取操作。当用户更改他想要跟踪的符号时,我必须设置一个新的 SqlDependency 并且必须清除旧的 SqlDependency。
我的问题是:这是真的吗?我怎样才能清除特定的依赖关系? SqlDependency.Stop() 是一个静态方法,它会停止所有依赖项——即使在那里,我也很不确定 SQL 服务器上的通知订阅是否真的被清除了——或者只是在等待超时。
这都提出了一个问题,如果使用 SqlDependency 进行一些缓存是正确的方法,或者是否有其他好的和简单的做法来实现这一点?
【问题讨论】:
标签: c# .net caching sqldependency notificationservices