Historiskt sett har tabellvärderade-parametrar inte varit ett stort fokus i dapper; främst för att de bara fungerar på SqlConnection
(dapper försöker rikta sig mot godtyckliga leverantörer, inklusive "dekorerade" ADO.NET-leverantörer - d.v.s. där en SqlConnection
gömmer sig under något omslag). Vad du kunde do är att implementera IDynamicParameters
manuellt (eller bara låna de befintliga DynamicParameters
class) för att lägga till denna funktionalitet:
void SqlMapper.IDynamicParameters.AddParameters(System.Data.IDbCommand command,
SqlMapper.Identity identity)
{
...
// and then whatever the code is...
((SqlCommand)command).Parameters
.AddWithValue(...,...).SqlDbType = System.Data.SqlDbType.Structured;
...
}
Jag kommer också att sträva efter att göra de konkreta DynamicParameters
klass mer polymorf här, så att du i ett framtida bygge bara kan override
en enda metod, upptäck en TVP-aktig typ och lägg till parametern manuellt.