Как передать параметр табличного значения

Я пытаюсь передать параметр табличного значения в хранимую процедуру, но продолжаю получать исключение (см. Ниже).

SqlCommand c = new SqlCommand("getPermittedUsers", myConn) { CommandType = CommandType.StoredProcedure };

c.Parameters.AddWithValue("@intNotifyingUserId", notifyingUserId);
c.Parameters.AddWithValue("@tSelectedPdfIds", sharedPdfs).SqlDbType = SqlDbType.Structured;

SqlDataReader dr = c.ExecuteReader();

Тип определяется на сервере следующим образом:

CREATE TYPE [dbo].[IdList] AS TABLE(
    [Id] [int] NOT NULL
)

Я пробовал передавать sharedPdfs как List и IQueryable , но продолжаю получать следующее исключение:

Объект должен реализовывать IConvertible.

Кто-нибудь знает, что я делаю неправильно? В документации подразумевается, что я должен иметь возможность передать список в качестве TVP, но не приводит никаких примеров.

Спасибо.

39
задан nw. 8 August 2011 в 22:50
поделиться