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#