sql >> Base de Datos >  >> RDS >> Sqlserver

Pasar una matriz de enteros al proceso almacenado T-SQL a través del marco de la entidad

Así es como llamo al procedimiento almacenado con un parámetro con valor de tabla. La principal diferencia es que yo uso un DataTable parámetro.

Recuerdo haber tenido problemas con los enlaces de nombres de parámetros, pero no recuerdo exactamente cuáles eran. Esto explica el cambio que hice en la sintaxis de la llamada al procedimiento. Sé que este debería 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();