Det är så jag kallar lagrad procedur med tabellvärderad parameter. Den största skillnaden är att jag använder en DataTable
parameter.
Jag minns att jag hade problem med parameternamnbindningar, men jag kommer inte ihåg exakt vad de var. Detta förklarar ändringen jag gjorde i syntaxen för proceduranropet. Jag vet att den här borde fungera.
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();