Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

UDT en tant que paramètre dans la requête EF4

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.