应用程序中SqlDependency的最佳解决方案

时间:2015-02-18 10:26:12

标签: windows-applications sql-server-2014 sqldependency

我们有Windows应用程序并使用SqlDependency进行通知。日复一日的应用程序和数据库变得庞大而且运行缓慢。

获得SqlDependency等通知的最佳方法是什么?我们需要在SqlDependency等应用程序中进行类似的更改更新。 还有其他方法吗?或者在Sql Server 2014中的方式。

请建议。 感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用SqlDependency类的开源实现 - SqlDependencyEx。它使用数据库触发器和本机Service Broker通知来接收有关表更改的事件。这是一个用法示例:

int changesReceived = 0;
using (SqlDependencyEx sqlDependency = new SqlDependencyEx(
          TEST_CONNECTION_STRING, TEST_DATABASE_NAME, TEST_TABLE_NAME)) 
{
    sqlDependency.TableChanged += (o, e) => changesReceived++;
    sqlDependency.Start();

    // Make table changes.
    MakeTableInsertDeleteChanges(changesCount);

    // Wait a little bit to receive all changes.
    Thread.Sleep(1000);
}

Assert.AreEqual(changesCount, changesReceived);

希望这有帮助。