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
因此,它导致
SqlException:@BrandIDSet1不是过程usp\u getFilteredCatalogItems的参数。
如何将类型转换为正确的SQL?