SQL ServerExpress2005のデータを次のように観察しようとしています。
SqlDependency.Stop(connectionString);
SqlDependency.Start(connectionString);
using (var con = new SqlConnection(connectionString))
{
con.Open();
var queryString = "SELECT [Name] FROM [dbo].[Persons]";
var command = new SqlCommand(queryString, con);
var dependency = new SqlDependency(command);
dependency.OnChange += OnQueryChanged;
command.ExecuteReader();
}
問題は、「名前」列が変更された場合のコールバックにのみ関心があることです。ただし、OnQueryChangedは、テーブル「Persons」の別の列が次のように変更された場合にも呼び出されます。
var context = new Entities();
context.Persons.First().Street = "Foo";
context.SaveChanges();
これはSqlDependencyの意図された動作ですか、それともその使用法を間違えていますか?