我项目的总体目标是从多个 911 调度中心收集当前的紧急事件信息,并通过 Web 服务将该信息发送到我们的服务器,然后服务器将显示我们地区的紧急事件列表。我目前在每个调度中心收集数据的方式是这样的:
- 调度中心运行着某种数据库服务器,用于存储所有事件信息
- 我在数据库中设置了一个查询,它以 xml 格式返回所有当前的紧急事件
- 我有一个 Windows 服务,每 3 秒运行一次该查询(实际上是一个存储过程),然后将该数据(xml)发送到我们的网络服务
- 当我们的服务器接收到信息时,它会删除(从我们的数据库,而不是调度中心)所有当前的事件信息,并用“新”数据替换它
这种方法的问题是我们发送了大量的冗余数据。我想做的只是发送自上次运行 sproc 以来已更改的数据库行。我的想法是让我的 Windows 服务做这样的事情。运行存储过程并将结果存储在某种数组/字典中。下一次运行 sproc(3 秒后)是将新结果与现有数组进行比较,只提取差异并发送它们......想将数据作为 JSON 而不是 XML 发送到我们的 web 服务。 . 想知道人们有什么想法才能最好地完成这个(不一定是特定的代码,而是更多的概述......)使用 C#......
编辑
经过更多调查后,我认为我想要的是类似于“数据集到列表”类型的过程......这将允许我将每条记录转换为自定义对象,然后创建这些对象的列表...... . 然后可以将对象列表存储在内存中,并且可以使用下一组数据(3 秒后)与原始列表进行比较以查看是否有任何更改... windows 服务不一定会调用 SQL Server sproc所以这个代码需要与其他数据库服务器一起工作......应该注意的是,每个数据集中返回的记录数最多可能只有10-15......我们不是在谈论数千记录...