你看过了吗? 推Linq 要么 反应性扩展(Rx) ?
虽然我没有使用过,但我相信两者都允许你在流数据上使用LINQ运算符。
有关Rx的更多信息,请访问DevLabs网站:
http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx
第一种替代解决方案是使用基础数据更改进行聚合 - 即,当我更新总计记录时,也可以更新总计。要做到这一点,你需要旧的值,然后它也增加了开销 任何 您对聚合值所做的更改。但是,如果要汇总现有数据的整体目的,那么它可能是一个可行的选择。
我使用银行平衡应用程序执行此操作,每当我插入/修改/删除事务时,逻辑也会更新帐户余额,因为余额会被多次搜索,并且很快就会在有很多事务时计算成本。
我认为,如果总和存储在数据库中,您可能会遇到问题,例如锁定问题。我总是将这些值保存在内存中。
的 更新: 强> 另一种可能的解决方案是通过维护层传递您的数据访问代码,该维护层将聚合值保存在内存中 - 这将是快速的,并且在插入/更新/删除基础数据时几乎是开销。您也可以变得聪明并使该层可以进行交易,因此如果数据访问操作失败,您可以回滚聚合更改。
唯一的缺点是数据库更改必须通过该层以避免使聚合无效,并且需要在首次运行或重新启动时从数据库初始化。
还有一个更积极开发的名为OLinq的项目,您也可以尝试
http://nuget.org/packages/OLinq