Ich denke, Sie haben Ihre Frage größtenteils beantwortet. Die Berechnung muss auf dem Datenbankserver durchgeführt werden, und Sie möchten nur ein Ergebnis erhalten, nicht wahr? Wenn Sie SQL Server 2008 verwenden, können Sie eine gespeicherte Prozedur erstellen, die table valued parameter akzeptiert
. Jetzt können Sie diese Prozedur entweder direkt über ADO.NET
aufrufen oder mit EF und context.ExecuteStoreQuery
wo Sie noch DataTable
übergeben zu SqlParameter
mit SqlDbType.Structured
.
Wenn Sie SQL Server 2008 nicht verwenden, benötigen Sie eine gespeicherte Prozedur mit einem großen nvarchar-Parameter, der die gesamte Liste als durch Kommas getrennte Zeichenfolge übergibt. Ihre gespeicherte Prozedur wird zuerst diese Liste parsen in eine temporäre Tabelle und verarbeiten Sie dann die Berechnung auf die gleiche Weise wie mit Tabellenwertparametern.