2009-09-10 5 views
6

J'ai un service WCF qui doit notifier ses clients lorsque des modifications surviennent dans la base de données (SQL Server 2005). Ceci est relativement facile à faire, tant que je trouve un moyen d'informer mon service de tout changement. Je peux probablement créer un déclencheur de base de données sur une table et avoir ce déclencheur démarrer un petit client de service qui notifie mon service, mais je me demande s'il y a une meilleure façon de le faire? Ce serait une solution viable pour que le service interroge la base de données pour les changements, mais je ne suis pas sûr de la meilleure façon de le faire (et envoyer une notification à mon service serait préférable). Comme les mises à jour pertinentes ne s'appliquent qu'à une certaine partie de la base de données, je me demandais également s'il était également possible de lier un tel déclencheur (ou un autre mécanisme) à un diagramme de base de données.Notifier mon service WCF lorsque ma base de données est mise à jour

Toute aide est appréciée! rinze

Répondre

6

Si votre base de données est SQL Server 2005 et supérieure, vous pouvez essayer cette solution: Remove pooling for data changes from a WCF front end. En guise de note, n'appelez jamais de processus externes à partir d'un déclencheur, ne faites pas d'appels Web à partir d'un déclencheur. Est-ce une recette garantie pour un désastre.

Mise à jour

Pour ceux intéressés par le mélange Notifications de requête avec des LINQ to SQL Je recommande Using SQLDependency objects with LINQ.

+0

OK, ce blog fait (presque) exactement ce que je fais ici. Comme j'utilise LINQ to SQL, c'est un peu moins simple, mais ça ne devrait pas poser de problème. Savez-vous s'il est possible d'ajouter une dépendance sur un diagramme de base de données (ou une vue, pour le simuler)? Merci pour le lien! – Syg

+0

Je n'ai pas pensé à utiliser LINQ et SqlDependency en combinaison. Je verrai comment cela peut être réalisé et posté. –

+0

Voir ma mise à jour, Ryan Dunn a déjà blogué sur SqlDependency et Linq2sql. –

Questions connexes