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

Passage d'un tableau d'ints à la procédure stockée T-SQL via le framework d'entité

C'est ainsi que j'appelle une procédure stockée avec un paramètre de table. La principale différence étant que j'utilise un DataTable paramètre.

Je me souviens d'avoir eu des problèmes avec les liaisons de noms de paramètres, mais je ne me souviens pas exactement de quoi ils s'agissait. Ceci explique le changement que j'ai fait dans la syntaxe de l'appel de procédure. Je sais que celui-ci devrait fonctionner.

var dataTable = new DataTable();
dataTable.TableName = "dbo.IntsTTV";
dataTable.Columns.Add("Id", typeof(int));
dataTable.Rows.Add(1); // Id of '1' is valid for the Person table

SqlParameter parameter = new SqlParameter("UserIds", SqlDbType.Structured);
parameter.TypeName = dataTable.TableName;
parameter.Value = dataTable;

var res = _db.Database.SqlQuery<string>("EXEC GetUsers @UserIds", parameter).ToList();