Usando Dapper, ¿cómo paso los valores para un tipo sql como parámetro?
Estoy intentando usar apuesto y pasar a un procedimiento almacenado una lista de enteros que he definido aquí usando DDL
CREATE TYPE [dbo].[BrandIDSet] AS TABLE ([BrandID] INT NULL);
He creado este procedimiento almacenado:
CREATE PROCEDURE dbo.usp_getFilteredCatalogItems
@BrandIDSet [dbo].[BrandIDSet] READONLY
e intentando pasar en código C # el valor de ese parámetro como
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);
Sin embargo, dapper no parece estar convirtiendo la lista como se esperaba. Con el código anterior, se ejecuta el siguiente SQL
exec dbo.usp_getFilteredCatalogItems @BrandIDSet1=1
Lo que no es correcto, ya que BrandIDSet1 no es el nombre del parámetro. Arg. Por lo tanto, resulta en
SqlException: @ BrandIDSet1 no es un parámetro para el procedimiento usp_getFilteredCatalogItems.
¿Cómo obtengo el tipo para convertir al SQL adecuado?