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.