Creo que en su mayoría respondió a su pregunta. El cálculo debe realizarse en el servidor de la base de datos y solo desea obtener un resultado, ¿no es así? Si está utilizando SQL Server 2008, puede crear un procedimiento almacenado que acepte parámetro con valores de tabla
. Ahora puede llamar a este procedimiento directamente usando ADO.NET
o usando EF y context.ExecuteStoreQuery
donde todavía pasas DataTable
a SqlParameter
con SqlDbType.Structured
.
Si no usa SQL Server 2008, necesita un procedimiento almacenado con un gran parámetro nvarchar que pasa la lista completa como una cadena delimitada por comas. Su procedimiento almacenado primero analizará esta lista a la tabla temporal y luego procese el cálculo de la misma manera que con el parámetro con valor de tabla.