有没有办法将事件绑定到 Sql Server(特别是 Azure),以便当表中有新数据时,例如,我的 .NET 进程会收到通知?
我认为的另一个选项是 Sql Serverlong polling
查询。也就是说,我执行了一个查询,但它不会返回任何东西,直到有东西要返回或达到超时。
为了更清楚地了解我的问题,我在不同的 Windows Azure 实例中有不同的线程等待通知。一旦有新的通知,他们必须立即采取行动。我不想让他们每 2 秒查询一次数据库或存储。
有没有办法将事件绑定到 Sql Server(特别是 Azure),以便当表中有新数据时,例如,我的 .NET 进程会收到通知?
我认为的另一个选项是 Sql Serverlong polling
查询。也就是说,我执行了一个查询,但它不会返回任何东西,直到有东西要返回或达到超时。
为了更清楚地了解我的问题,我在不同的 Windows Azure 实例中有不同的线程等待通知。一旦有新的通知,他们必须立即采取行动。我不想让他们每 2 秒查询一次数据库或存储。
不在 Azure 中。在盒子产品中,您有Query Notifications及其衍生产品(SqlNotificationRequest
和SqlDependency
)SqlCacheDependency
,请参阅神秘通知了解详细信息。您可以将它用作带有LinqToCache的 LINQ 包装器。
但 Azure 不支持查询通知。在 Azure 上,您的应用程序应在更新数据库时使用Azure Queues进行通知。
您可以使用SqlTableDependency
SqlTableDependency 是一个通用 C# 组件,用于在指定数据库表的内容发生更改时接收通知。
.NET SqlDepenency 有什么区别?
基本上,主要区别在于 SqlTableDependency 发送包含插入、更改或删除记录的值的事件,以及在表上执行的 DML 操作(插入/删除/更新):数据库表,他们只说有些东西发生了变化。