Penso che tu abbia risposto principalmente alla tua domanda. Il calcolo deve essere eseguito sul server del database e vuoi solo ottenere il risultato, vero? Se si utilizza SQL Server 2008 è possibile creare una stored procedure che accetta parametro con valori di tabella
. Ora puoi chiamare questa procedura direttamente utilizzando ADO.NET
o utilizzando EF e context.ExecuteStoreQuery
dove passi ancora DataTable
a SqlParameter
con SqlDbType.Structured
.
Se non si utilizza SQL Server 2008 è necessaria una stored procedure con un parametro nvarchar grande che passa l'intero elenco come stringa delimitata da virgole. La procedura memorizzata prima analizzerà questo elenco alla tabella temporanea e quindi elaborare il calcolo allo stesso modo del parametro con valore di tabella.