Я пытался создать общий метод, который может читать имя и значение параметров из класса в Runtime и создавать набор параметров для выполнения запроса Dapper. Понял, что до момента, когда все параметры являются типами ввода, он работает хорошо, но если мне нужно добавить параметры типа Output / ReturnValue
, тогда мне нужно работать с DynamicParameters
, иначе я не могу получить значения параметров Output / ReturnValue
SP имеет следующие параметры:
PersonList - TableValued - Input
TestOutput - Int - Output
Я не могу выполнить следующую часть кода:
var dynamicParameters = new DynamicParameters();
dynamicParameters.Add("PersonList", <DataTable PersonList>);
dynamicParameters.Add("TestOutput", 0, Dbtype.Int32, ParameterDirection.Output);
Исключение:
System.Data.SqlClient.SqlException: The incoming tabular data stream (TDS)
remote procedure call (RPC) protocol stream is incorrect. Parameter 1
("@PersonList"): Data type 0x62 (sql_variant) has an invalid type for type-
specific metadata.
Проблема, поскольку я могу понять, нет ли допустимого DbType, доступного для добавления TVP к динамическим параметрам, поскольку я не использую SqlDbType, поэтому нет замены для SqlDbType.Structured в DbType.
Любой указатель или обходной путь для решения проблемы