Jag tror att du mest svarade på din fråga. Beräkning måste göras på databasservern och du vill bara få resultat, eller hur? Om du använder SQL Server 2008 kan du skapa en lagrad procedur som accepterar tabellvärderad parameter
. Nu kan du anropa den här proceduren antingen direkt med ADO.NET
eller med EF och context.ExecuteStoreQuery
där du fortfarande skickar DataTable
till SqlParameter
med SqlDbType.Structured
.
Om du inte använder SQL Server 2008 behöver du lagrad procedur med en stor nvarchar-parameter som skickar hela listan som kommaavgränsad sträng. Din lagrade procedur kommer först att tolka den här listan till temporär tabell och bearbeta sedan beräkningen på samma sätt som med tabellvärderad parameter.