I have a problem with SqlTableDependency. My Changed method is not called when I do insert / update / delete in the wish table. The OnStatusChanged event is working fine.
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); } }
Above the code, I'm based on https://tabledependency.codeplex.com/wikipage?title=SqlTableDependency I'm sure I have and I use the db_owner role. I turned on the broker, I see that triggers, services, etc. Created in mssql db.

source share