【问题标题】:SqlDependency & OnChangeEventHandler discovering what data has changed?SqlDependency & OnChangeEventHandler 发现哪些数据发生了变化?
【发布时间】:2010-10-19 04:39:52
【问题描述】:

在 .Net 中与 SQL Server 一起使用 SqlDependency 和 OnChangeEventHandler 时,是否有可能(简单?)发现哪些数据发生了变化?

【问题讨论】:

    标签: sql-server wpf windows wcf


    【解决方案1】:

    您需要再次运行查询并将获得的结果与之前的结果进行比较。准确检测更改的内容有多简单,取决于您选择的具体内容(单行、表中的所有行、行的子集、部分/所有行的聚合、多个表之间的连接等)。但总的来说一点都不简单,最好还是简单地再次运行整个查询,丢弃之前的结果。

    将查询通知视为一种主动使缓存无效的方法,而不是一种跟踪更改的方法。

    【讨论】:

    • 谢谢,我有一个单一的数据更新源,所以我可以跟踪它们,并可能进行比较。但是,我认为最好只刷新该客户端的 SELECT 请求。
    • 如果您不使用 TakeSkip,您可以将其隐藏在 Linq2SQL 查询后面:code.google.com/p/linqtocache
    • 仅供参考,我将(从客户端)连接到远程服务器上的结果集,然后在客户端应用程序内部执行 Skip/Take 以显示分页结果(但总列表将相当小)我认为这不会影响使用linqtocache(我将使用它来连接初始完整结果集)
    • 如果你在 IEnumerable after 上使用 Skip/Take,结果被缓存,那么它应该没问题,只要结果集大小合理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多