我有一个WCF服务,当数据库发生更改时需要通知它的客户端(sql server 2005)。只要我找到通知 服务 任何更改的方法,这相对容易完成。我可以在表上创建一个数据库触发器并让该触发器启动一个通知我的服务的小型服务客户端,但我想知道是否有更好的方法来执行此操作?让服务轮询数据库进行更改是一个可行的解决方案,但我不确定最好的方法(并向我的服务发送通知将是首选)。
由于相关更新仅适用于数据库的某个部分,我还想知道是否也可以将这样的触发器(或其他机制)链接到数据库图表。
感谢所有帮助! rinze
答案 0 :(得分:6)
如果您的数据库是SQL Server 2005及更高版本,则可以尝试此解决方案:Remove pooling for data changes from a WCF front end。
作为旁注,永远不要从触发器调用外部进程,不要从触发器进行Web调用。是一个有保障的灾难食谱。
<强>更新强>
对于那些有兴趣将查询通知与LINQ to SQL混合的人,我建议Using SQLDependency objects with LINQ。
答案 1 :(得分:1)