Myślę, że głównie odpowiedziałeś na swoje pytanie. Obliczenia muszą być wykonane na serwerze bazy danych, a po prostu chcesz uzyskać wynik, prawda? Jeśli używasz SQL Server 2008, możesz utworzyć procedurę składowaną, która akceptuje parametr o wartości tabeli
. Teraz możesz wywołać tę procedurę albo bezpośrednio przy użyciu ADO.NET
lub używając EF i context.ExecuteStoreQuery
gdzie nadal przekazujesz DataTable
do SqlParameter
z SqlDbType.Structured
.
Jeśli nie używasz SQL Server 2008, potrzebujesz procedury składowanej z jednym dużym parametrem nvarchar, przekazującym całą listę jako ciąg znaków oddzielonych przecinkami. Twoja procedura składowana najpierw przeanalizuje tę listę do tabeli tymczasowej, a następnie przetwarzaj obliczenia w taki sam sposób, jak w przypadku parametru o wartości tabeli.