有关数据库更改的通知

时间:2011-09-02 16:21:49

标签: sql sql-server wcf sql-server-2005 sql-server-2008

我正在尝试一种方案,我想更新在不同PC上运行的桌面用户界面以及任何用户提交的更改。例如:

  1. Application1安装在PC1,PC2和PC3上。
  2. 假设所有PC都运行此应用程序。
  3. 假设PC1上的用户1更改数据并提交到数据库
  4. PC2和PC3上的UI应该更新,无需轮询或从数据库中提取数据。
  5. 任何人都可以建议一种方法来通知我的中间层服务有关数据库更改,然后我可以将其转发给所有注册的客户端。当表更改(插入/更新/删除)时,SQL Notification Services或Service Broker是否会通知?任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:3)

Query Notifications就是这样做的。当服务器上的数据发生变化时,您将收到通知,您必须再次查询数据以刷新UI。一个简单的实现是使用LinqToCache并向CachedQueryOptions对象添加OnInvalidated处理程序。