Это скорее технический вопрос «как» или «лучший подход».
У нас есть текущее требование извлекать записи из базы данных, помещать их в список «в памяти» изатем выполните серию вычислений над данными, то есть максимальные значения, средние значения и некоторые более специфические пользовательские статистические данные.
Получение данных в списке «в памяти» не является проблемой, так как мы используем NHibernate какнаш ORM, и он делает отличную работу по извлечению данных из базы данных.Совет, который я ищу, заключается в том, как лучше всего выполнять вычисления для результирующего списка данных.
В идеале я хотел бы создать метод для каждой статистики, MaximumValue (), AverageValueUnder100 (), MoreComplicatedStatistic () и т. Д. И т. Д.Конечно, передавая необходимые переменные каждому методу и возвращая результат.Этот подход также сделает модульное тестирование быстрым и обеспечит нам превосходный охват.
Будет ли снижение производительности, если мы выполним запрос LINQ для каждого вычисления, или необходимо объединить столько вызовов для каждого статистического метода, скольконесколько запросов LINQ, насколько это возможно.Например, не имеет особого смысла передавать список данных методу AverageValueBelow100, а затем передавать весь список данных другому методу AverageValueBelow50, когда их можно эффективно выполнить одним запросом LINQ.
КакМожем ли мы достичь высокого уровня детализации и разделения без ущерба для производительности?
Любой совет ... достаточно ли ясен вопрос?