Мисля, че най-вече отговорихте на въпроса си. Изчислението трябва да се направи на сървъра на базата данни и вие просто искате да получите резултат, нали? Ако използвате SQL Server 2008, можете да създадете съхранена процедура, която приема табличен параметър
. Сега можете да извикате тази процедура или директно с помощта на ADO.NET
или с помощта на EF и context.ExecuteStoreQuery
където все още предавате DataTable
към SqlParameter
с SqlDbType.Structured
.
Ако не използвате SQL Server 2008, имате нужда от съхранена процедура с един голям параметър nvarchar, предаващ целия списък като низ, разделен със запетая. Вашата съхранена процедура първо ще анализ на този списък към временна таблица и след това обработете изчислението по същия начин, както с параметър със стойност на таблица.