Классический ADO.NET - как передать UDT в хранимую процедуру?

У меня есть этот UDT SQL Server 2008:

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

Довольно просто. В основном позволяет мне хранить список идентификаторов.

У меня есть эта хранимая процедура:

CREATE PROCEDURE [dbo].[Scoring_ScoreMultipleLocations]
    @LocationIds [IdentityType] READONLY,
    @DoRanking BIT = 0
AS
BEGIN
   -- irrelevant code.
END

Entity Framework 4.0 не поддерживает выполнение хранимых процедур, которые принимают определенные пользователем типы таблиц в качестве параметра, поэтому я возвращаюсь к классической ADO .СЕТЬ. Единственный другой вариант - передать строку, разделенную запятыми.

Так или иначе, я нашел эту статью, но за ней немного сложно следовать.

Я не понимаю, что это за строка кода do:

DataTable dt = prepareatatable ();

Они даже не предоставляют этот метод, поэтому я понятия не имею, что мне здесь делать.

Это моя подпись метода:

internal static void ScoreLocations(List locationIds, bool doRanking)
{
   // how do i create DataTable??
}

Итак, у меня есть список int , и мне нужно добавить его в UDT.

Может ли кто-нибудь помочь мне / указать мне на четкую статью о том, как этого добиться?

7
задан RPM1984 18 January 2011 в 00:52
поделиться