Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

UDT come parametro nella query EF4

Penso che tu abbia risposto principalmente alla tua domanda. Il calcolo deve essere eseguito sul server del database e vuoi solo ottenere il risultato, vero? Se si utilizza SQL Server 2008 è possibile creare una stored procedure che accetta parametro con valori di tabella . Ora puoi chiamare questa procedura direttamente utilizzando ADO.NET o utilizzando EF e context.ExecuteStoreQuery dove passi ancora DataTable a SqlParameter con SqlDbType.Structured .

Se non si utilizza SQL Server 2008 è necessaria una stored procedure con un parametro nvarchar grande che passa l'intero elenco come stringa delimitata da virgole. La procedura memorizzata prima analizzerà questo elenco alla tabella temporanea e quindi elaborare il calcolo allo stesso modo del parametro con valore di tabella.