Почему я получаю -1 из хранимой процедуры?
Я использую SQL Server 2012 и Entity Framework6.
Я создал параметр с табличным значением:
CREATE TYPE IdArray AS TABLE ( Id int );
А вот моя хранимая процедура:
ALTER PROCEDURE [dbo].[SP_TEST_TLP] @List dbo.IdArray READONLY AS BEGIN SET NOCOUNT ON; SELECT * FROM Clients WHERE Clients.Id IN ( '@List' ) END
Из Visual Studio я вызываю хранимую процедуру и передаю параметры в хранимую процедуру.
Я делаю это таким образом:
Создать DataTable:
var myDataTable = new DataTable(); myDataTable.Columns.Add("Id", typeof(int)); myDataTable.Rows.Add(1); myDataTable.Rows.Add(3); myDataTable.Rows.Add(6);
Создание " SqlParameter` из DataTable:
SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@List"; parameter.SqlDbType = System.Data.SqlDbType.Structured; parameter.TypeName = "dbo.IdArray"; parameter.Value = myDataTable;
Огонь хранимых процедур и передача параметров:
var data = _context.Database.ExecuteSqlCommand("SP_TEST_TLP @List", parameter);
Проблема в том, что` ExecuteSqlCommand ' возвращает -1.
Почему ExecuteSqlCommand` возвращает -1 в то время как я ожидаю строк из базы данных?
Что я уже пробовал:
Я попробовал все вышесказанное, но это не сработало!