Jeg tror, du for det meste besvarede dit spørgsmål. Beregningen skal udføres på databaseserveren, og du vil bare have et resultat, gør du ikke? Hvis du bruger SQL Server 2008, kan du oprette en lagret procedure, som accepterer parameter med tabelværdi
. Nu kan du kalde denne procedure enten direkte ved hjælp af ADO.NET
eller ved at bruge EF og context.ExecuteStoreQuery
hvor du stadig sender DataTable
til SqlParameter
med SqlDbType.Structured
.
Hvis du ikke bruger SQL Server 2008, har du brug for en lagret procedure med en stor nvarchar-parameter, der sender hele listen som kommasepareret streng. Din lagrede procedure vil først parse denne liste til midlertidig tabel og bearbejd derefter beregningen på samme måde som med tabelværdiparameter.