Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Passando matriz de ints para o proc armazenado T-SQL via estrutura de entidade


É assim que chamo o procedimento armazenado com parâmetro com valor de tabela. A principal diferença é que eu uso um DataTable parâmetro.

Lembro-me de ter problemas com ligações de nomes de parâmetros, mas não me lembro exatamente o que eram. Isso explica a mudança que fiz na sintaxe da chamada de procedimento. Eu sei que este deveria estar funcionando.
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();