我正在研究Rx.NET在流式传输SQL Server数据表方面的潜力.基本上我想在不插入轮询的情况下尽可能地插入数据.
我使用Rx / DataReader创建了一些POC,但是在插入新行时我无法订阅.当没有更多行要选择时,流停止(当然这是预期的).
约束:
> SQL Server和数据库上没有配置更改
>可能没有民意调查
我想到了这些解决方案,但那些需要许可证或服务器更改:
> StreamInsight
> SQLDependency
>触发器
在.NET中有类似SQLBrite的东西吗?
最佳答案 使用Service Broker所需的努力和痛苦是巨大的(消息类型,合同,队列等),如果您不是SQL Server的人甚至不考虑.
有一个开源实现似乎有所帮助.您可以查看:https://tabledependency.codeplex.com – 它可能超出您的预期来解决您的问题.
比你更容易使用/使用SqlDependency – https://msdn.microsoft.com/en-us/library/62xk7953(v=vs.110).aspx在几行代码中你可以观察表的变化(有一些限制),只需注意应用程序和数据库性能.
它们都没有提供IObservable< T>.盒子外面.但是,一旦你有一个DataChanged,OnDependencyChange事件或类似的东西.您可以使用Rx对其进行抽象,将.net事件转换为可观察对象 –
https://msdn.microsoft.com/en-us/library/hh229241(v=vs.103).aspx