sql >> Databasteknik >  >> RDS >> Sqlserver

Tabellvärdeparameter med Dapper lagrade procedurer

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.




  1. Skapa en kml-fil från en mysql-databas med php

  2. GroupBy efter orderBy för komplicerad fråga i Laravel

  3. Hur säkerställer jag integritet mellan orelaterade tabeller?

  4. SQL Server Indexes Management Använda Index Manager för SQL Server