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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta