2009-09-10 68 views
6

我有一个WCF服务,当数据库发生更改时需要通知它的客户端(sql server 2005)。这是相对容易完成的,只要我找到方法来通知我的服务的任何变化。我可以在表上创建一个数据库触发器,并触发一个小型服务客户端来通知我的服务,但我想知道是否有更好的方法来做到这一点?这将是一个可行的解决方案,让服务轮询数据库的变化,但我不确定最好的方式来做到这一点(并发送通知到我的服务将是首选)。由于相关更新仅适用于数据库的某个部分,因此我还想知道是否也可以将此类触发器(或其他机制)链接到数据库关系图。当我的数据库更新时通知我的WCF服务

所有帮助表示赞赏! rinze

回答

6

如果您的数据库是SQL Server 2005及更高版本,则可以尝试此解决方案:Remove pooling for data changes from a WCF front end

作为一个方面说明,不要从触发器中调用外部进程,也不要通过触发器进行Web调用。是灾难的保证配方。

更新

对于那些有兴趣在混合查询通知与LINQ to SQL中我建议Using SQLDependency objects with LINQ

+0

OK,这个博客做(几乎)我在做什么在这里。因为我使用LINQ to SQL,所以它不太直截了当,但不应该是个问题。你知道是否可能在数据库图表(或视图,模拟它)上添加依赖关系吗? Thanx的链接! – Syg 2009-09-11 08:00:52

+0

我没有想过将LINQ和SqlDependency结合使用。我会看到如何实现并回传。 – 2009-09-11 14:47:42

+0

查看我的更新,Ryan Dunn已经发布了有关SqlDependency和Linq2sql的博客。 – 2009-09-11 16:39:58

相关问题