0

I need to call a sql stored procedure which have an input parameter with type "IntList" that is a user-defined table type,I wanna set this parameter with a list of int through dapper dynamic parameter, in this case I don't have Structured dbtype, how can I handle it? I've tried this :

   using var connection = _dbConnectionFactory.GetDefaultServerConnectionString();

            var parameters = new DynamicParameters();
            parameters.Add("@RequestId", query.RequestId, DbType.DateTime);
            parameters.Add("@Agencies", query.AgencyIds);

            return await connection.QueryAsync<TerminalDto>(
                "SelectTerminals", parameters,
                commandType: CommandType.StoredProcedure);

but it raise "too many arguments" error!

Masoumeh Karvar
  • 741
  • 1
  • 13
  • 31
  • 2
    Does this answer your question? [Dapper Dynamic Parameters with Table Valued Parameters](https://stackoverflow.com/questions/33087629/dapper-dynamic-parameters-with-table-valued-parameters) Use `.AsTableValuedParameter("yourTableType")` – Charlieface Oct 20 '21 at 12:47
  • I've tried AsTableValuedParameter but it can't be used this with List . It shows this compile time error : The type int cannot be used as type parameter in the generic type or method SqlMapper.AsTableValuedParameter – Masoumeh Karvar Oct 23 '21 at 05:20
  • Try like this `parameters.Add("@Agencies", query.AgencyIds.AsTableValuedParameter("yourTableType"));` – Charlieface Oct 23 '21 at 18:12
  • This is exactly what I tried and got the error mentioned in previous comment. I finally did this by converting agencyIds to datatable. – Masoumeh Karvar Oct 25 '21 at 06:30

0 Answers0