C# Linq to SQL передать список в хранимой процедуре

Я пытаюсь передать список строк в моей хранимой процедуре, я пытался настроить указания следующего урока, но я застрял на последнем шаге: https://larrymcnutt.wordpress.com/2014/11/05 / проходя-A-список-INT-с-с-к-в-SQL-хранимой процедуры /

Я создал определенный пользователем тип в моей базе данных:

create type dbo.myList as table
(
    element nvarchar(22)
)
go

В моем классе я адаптирую свой код с правильным типом и списком

new SqlMetaData("element", SqlDbType.NVarChar, 22)

Но проблема, с которой я сталкиваюсь, заключается в том, что моя хранимая процедура возвращает несколько значений, поэтому я использую такой метод:

    [Function(Name = "dbo.MyStoredProcedure_S")]
    [ResultType(typeof(Value))]
    [ResultType(typeof(Structure))]
    [ResultType(typeof(Error))]
    public IMultipleResults MyStoredProcedure_SMultipleResults(
        [Parameter(Name = "id", DbType = "Int NOT NULL")] int id,
        [Parameter(Name = "myList", DbType = "Structured")] myCollection myList)
    {
        var result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), id, myList);
        return (IMultipleResults)(result.ReturnValue);
    }

Я не нашел ресурс, указывающий, как передать мой список в качестве параметра в этом случае.

Возникло исключение:

Параметр типа таблицы '@p1' должен иметь правильное имя типа.

Я также попытался изменить тип моей переменной с помощью простого списка строк, как это

[Parameter(Name = "myList", DbType = "Structured")] List<string> myList

но у меня тот же результат

Спасибо

РЕДАКТИРОВАТЬ: это мой код, используемый для хранимой процедуры:

CREATE PROCEDURE [dbo].[myStoredProcedure]
    @id int,
    @myList myList READONLY,
AS
BEGIN
    SELECT ...
    WHERE ref IN (SELECT element FROM @myList)
    ...
END

И мне удается выполнить мою хранимую процедуру следующим образом:

DECLARE @return_value int
DECLARE @list [dbo].[myList]
INSERT INTO @list VALUES ('stringval'), ('otherstringval');

EXEC    @return_value = [dbo].[sp_ATL_RechercheHuilesMagasin_S]
    @id = 1,
    @myList = @list

SELECT  'Return Value' = @return_value

Он возвращает данные в моих 3 таблицах, соответствующие результатам "Значение", "Структура", "Ошибка", определенным в моем коде C#

0 ответов

Другие вопросы по тегам