Я пытаюсь использовать dapper и передать в хранимую процедуру список целых чисел, который я определил здесь, используя DDL
CREATE TYPE [dbo].[BrandIDSet] AS TABLE ([BrandID] INT NULL);
Я создал эту хранимую процедуру:
CREATE PROCEDURE dbo.usp_getFilteredCatalogItems
@BrandIDSet [dbo].[BrandIDSet] READONLY
и попытка передать в коде c # значение этого параметра как
public async Task<PaginatedCatalogItemsVM> GetFilteredCatalogItems(int pageSize, int pageNumber, List<int> brandIDSet)
{
..
string storedProcName = "dbo.usp_getFilteredCatalogItems";
paginatedItemsVM.CatalogItemResults = await connection.QueryAsync<CatalogItemVM>(storedProcName, new { BrandIDSet = brandIDSet }, commandType: CommandType.StoredProcedure);
Однако, похоже, dapper не преобразует список должным образом.С помощью приведенного выше кода это приводит к выполнению следующего SQL
exec dbo.usp_getFilteredCatalogItems @BrandIDSet1=1
Что не так, поскольку BrandIDSet1 не является именем параметра.Arg.Таким образом, это приводит к
SqlException: @ BrandIDSet1 не является параметром для процедуры usp_getFilteredCatalogItems.
Как получить тип для преобразования в правильный SQL?