2009-09-10 12 views
6

Mam usługę WCF, która musi powiadomić klientów, gdy zmiany nastąpią w bazie danych (serwer sql 2005). Jest to stosunkowo łatwe do zrealizowania, o ile znajdę sposób powiadomienia o wszelkich zmianach. Prawdopodobnie mogę utworzyć wyzwalacz bazy danych w tabeli i uruchomić ten wyzwalacz, aby uruchomić małego klienta usług, który powiadamia moją usługę, ale zastanawiam się, czy istnieje lepszy sposób na zrobienie tego? Byłoby realnym rozwiązaniem, gdyby ankieta serwisowa zawierała bazę danych zmian, ale nie jestem pewien, jak to zrobić najlepiej (i najlepiej byłoby wysłać powiadomienie do mojej usługi).Poinformuj moją usługę WCF, gdy moja baza danych jest aktualizowana

Ponieważ odpowiednie aktualizacje dotyczą tylko pewnej części bazy danych, zastanawiałem się również, czy możliwe jest powiązanie takiego wyzwalacza (lub innego mechanizmu) ze schematem bazy danych.

Cała pomoc jest doceniana! rinze

Odpowiedz

6

Jeśli twoją bazą danych jest SQL Server 2005 i nowsze, możesz wypróbować to rozwiązanie: Remove pooling for data changes from a WCF front end.

Na marginesie, nigdy nie wywołuj procesów zewnętrznych z wyzwalacza, nie wywołuj wywołań internetowych z wyzwalacza. Jest gwarantowaną receptą na katastrofę.

Aktualizacja

Dla zainteresowanych mieszanie powiadomień kwerendy z LINQ to SQL Polecam Using SQLDependency objects with LINQ.

+0

OK, ten blog ma (prawie) dokładnie to, co ja tu robię. Ponieważ używam LINQ do SQL, jest to trochę mniej proste, ale nie powinno być problemu. Czy wiesz, czy możliwe jest dodanie zależności od diagramu bazy danych (lub widoku, aby go zasymulować)? Thanx za link! – Syg

+0

Nie myślałem o użyciu LINQ i SqlDependency w połączeniu. Zobaczę, jak można to osiągnąć i odesłać. –

+0

Zobacz moją aktualizację, Ryan Dunn już blogował o SqlDependency i Linq2sql. –