【发布时间】:2013-11-22 17:11:56
【问题描述】:
我已经设置了一个列表,应该知道对其数据源的更改,或多或少如下:
public class SharedList<T>: ObservableCollection<T> where T: XTimeEntity
{
private const string DependencyQuery = "select TITLE_ACTIVE, TITLE_NAME from TITLE";
private readonly SqlDependency _dependency = new SqlDependency();
public SharedList()
{
var connectionString = ConfigurationManager.ConnectionStrings["XTime900Context"].ConnectionString;
SqlDependency.Stop(connectionString);
using (var sqn = new SqlConnection(connectionString))
{
using (var cmd = new SqlCommand(DependencyQuery, sqn))
{
_dependency.AddCommandDependency(cmd);
}
}
_dependency.OnChange += DependencyOnOnChange;
PopulateList();
SqlDependency.Start(connectionString);
}
}
然而,当我在 SSMS 中执行 insert TITLE values (1, 1, 'Mr.') 时,没有触发任何事件。触发事件的更改是否必须在 SqlConnection 对象或其他对象上进行?
【问题讨论】:
-
首先你需要模式名称。选择 .. 从 Schema.TableName。
-
是的,@Janis,我已经添加了这个并且正在接收通知,但一切都不是很好:[我还有另一个问题] [1]:stackoverflow.com/questions/20234287/…
标签: c# .net ado.net service-broker