我有一个WCF服务,当数据库发生更改时(SQL Server 2005),它需要通知其客户端。只要我找到一种将任何更改通知我的 服务 的方法,这相对容易实现。我可能可以在表上创建数据库触发器,并让该触发器启动一个通知我的服务的小型服务客户端,但是我想知道是否有更好的方法可以做到这一点?让服务轮询数据库中的更改将是一个可行的解决方案,但是我不确定采用哪种最佳方法(并且最好向我的服务发送通知)。
由于相关的更新仅适用于数据库的特定部分,因此我也想知道是否还可以将这样的触发器(或其他机制)链接到数据库图。
感谢所有帮助!林兹
如果您的数据库是SQL Server 2005及更高版本,则可以尝试以下解决方案:从WCF前端删除池以进行数据更改。
附带说明一下,切勿从触发器调用外部进程,也不要从触发器进行Web调用。是保证灾难的良方。
更新
对于那些对将Query Notifications与LINQ混合到SQL感兴趣的人,我建议对LINQ使用SQLDependency对象。