Я вызываю свою процедуру следующим способом:
public async Task<IEnumerable<Algorithm>> GetAlgorithmsByNameAsync(IEnumerable<string> names)
{
var parameters = new DynamicParameters();
parameters.Add("@names", names);
var connection = _connection.GetOpenConnection();
return await connection.QueryAsync<Algorithm>("GetAlgorithmsByName", parameters, commandType: CommandType.StoredProcedure);
}
Моя процедура выглядит следующим образом:
CREATE TYPE [dbo].[StringList] AS TABLE(
[Item] [NVARCHAR](MAX) NULL
);
--PROCEDURE HERE--
CREATE PROCEDURE GetAlgorithmsByName
@names StringList READONLY -- my own type
AS
BEGIN
SELECT ALgorithmId, Name From Algorithms WHERE Name IN (SELECT Item FROM @names)
END
Из приведенного выше кода я получаю ошибку:
"В процедуре или функции GetAlgorithmsByName указано слишком много аргументов."
Что я делаю не так? Как передать IEnumerable<string>
хранимой процедуре с помощью dapper?