这更像是一个技术性的"操作方法"或"最佳方法"问题.
我们当前要求从数据库中检索记录,将它们放入"内存中"列表,然后对数据执行一系列计算,即最大值,平均值和一些更具体的自定义统计信息.
将数据放入"内存中"列表不是问题,因为我们使用NHibernate作为我们的ORM,并且它在从数据库中检索数据方面表现出色.我正在寻求的建议是我们应该如何最好地对结果数据列表进行计算.
理想情况下,我想为每个统计信息创建一个方法,MaximumValue(),AverageValueUnder100(),MoreComplicatedStatistic()等等.当然,将所需的变量传递给每个方法并让它返回结果.这种方法也可以使单元测试变得轻而易举,并为我们提供了极好的覆盖范围.
如果我们为每个计算执行LINQ查询,或者应该在尽可能少的LINQ查询中合并每个统计方法的次数,那么是否会有性能损失.例如,将数据列表传递给名为AverageValueBelow100的方法没有多大意义,然后将整个数据列表传递给另一个方法AverageValueBelow50,当它们可以通过一个LINQ查询有效地执行时.
如何在不牺牲性能的情况下实现高水平的粒度和分离?
任何建议......问题是否足够明确?