sql >> Database teknologi >  >> RDS >> Sqlserver

Tabelværdiparameter med Dapper-lagrede procedurer

Historisk set har tabel-værdi-parametre ikke været et stort fokus i dapper; hovedsagelig fordi de kun virker på SqlConnection (dapper forsøger at målrette mod vilkårlige udbydere, inklusive "dekorerede" ADO.NET-udbydere - dvs. hvor en SqlConnection gemmer sig under en indpakning). Hvad du kunne do er at implementere IDynamicParameters manuelt (eller bare lån de eksisterende DynamicParameters klasse) for at tilføje denne 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;
    ...
}

Jeg vil også bestræbe mig på at lave de konkrete DynamicParameters klasse mere polymorf her, så du i en fremtidig build bare kan override en enkelt metode, detekter en TVP-agtig type og tilføj parameteren manuelt.




  1. Subsonic 2.2 Genereret egenskab til SQL Server 2008 Dato

  2. SQL Server-fejl:Kunne ikke udføre fjernproceduren

  3. SQLite ÆNDRINGSTABEL

  4. Vælg TOP X (eller nederste) procent for numeriske værdier i MySQL