SqlTableDependencyに問題があります。 My Changedメソッドは、テーブルを挿入/更新/削除するときに呼び出されません。 OnStatusChangedイベントは正常に機能します。SqlTableDependency onchangeイベントが発生しない
string conn = @"data source=secret server; integrated security=True; initial catalog=secret db;User id=secret user";
var mapper = new ModelToTableMapper<SqlDataModel>();
mapper.AddMapping(c => c.datavalue, "datavalue");
using (var dep = new SqlTableDependency<SqlDataModel>(conn, "data", mapper))
{
dep.OnChanged += Changed;
dep.OnStatusChanged += OnStatusChanged;
dep.OnError += OnError;
dep.TraceLevel = TraceLevel.Verbose;
dep.TraceListener = new TextWriterTraceListener(Console.Out);
dep.Start();
Console.WriteLine("Press a key to exit");
Console.ReadKey();
dep.Stop();
}
}
static void OnStatusChanged(object sender, StatusChangedEventArgs e)
{
Console.WriteLine(e.ToString());
}
static void OnError(object sender, ErrorEventArgs e)
{
Console.WriteLine(e.ToString());
}
static void Changed(object sender, RecordChangedEventArgs<SqlDataModel> e)
{
if (e.ChangeType != ChangeType.None)
{
var changedEntity = e.Entity;
Console.WriteLine("DML operation: " + e.ChangeType);
Console.WriteLine("value: " + changedEntity.datavalue);
}
}
は、コードの上に私は私が持っていると確信しているhttps://tabledependency.codeplex.com/wikipage?title=SqlTableDependency に基づいており、私は、db_ownerロールを使用しています。私はブローカーを有効にした、私はそのtrigers、サービスなどがmssql dbで作成された参照してください。
を行うには、まだ持っていたにもかかわらずはSqlTableDependencyがhttps://github.com/christiandelbianco/monitor-に今あることに注意してくださいtable-change-with-sqltabledependency –