Je pense que tu as en grande partie répondu à ta question. Le calcul doit être effectué sur le serveur de base de données et vous voulez juste obtenir un résultat, n'est-ce pas ? Si vous utilisez SQL Server 2008, vous pouvez créer une procédure stockée qui accepte paramètre de valeur de table
. Vous pouvez maintenant appeler cette procédure soit directement en utilisant ADO.NET
ou en utilisant EF et context.ExecuteStoreQuery
où vous passez toujours DataTable
à SqlParameter
avec SqlDbType.Structured
.
Si vous n'utilisez pas SQL Server 2008, vous avez besoin d'une procédure stockée avec un grand paramètre nvarchar passant la liste entière sous forme de chaîne délimitée par des virgules. Votre procédure stockée va d'abord analyser cette liste vers une table temporaire, puis traitez le calcul de la même manière qu'avec un paramètre de table.