Dit is hoe ik een opgeslagen procedure noem met een tabelwaardeparameter. Het belangrijkste verschil is dat ik een DataTable
. gebruik parameter.
Ik herinner me dat ik problemen had met parameternaambindingen, maar ik weet niet meer precies wat ze waren. Dit verklaart de wijziging die ik heb aangebracht in de syntaxis van de procedureaanroep. Ik weet dat deze zou moeten werken.
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();