Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Parâmetro de valor de tabela com procedimentos armazenados do Dapper


Historicamente, os parâmetros com valor de tabela não têm sido um grande foco no dapper; principalmente porque eles só funcionam em SqlConnection (dapper tenta direcionar provedores arbitrários, incluindo provedores ADO.NET "decorados" - ou seja, onde um SqlConnection está escondido debaixo de algum invólucro). O que você poderia fazer é implementar IDynamicParameters manualmente (ou apenas emprestar os DynamicParameters existentes class) para adicionar esta funcionalidade:
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;
    ...
}

Também me esforçarei para tornar os DynamicParameters concretos classe mais polimórfica aqui, para que em uma compilação futura você possa apenas override um único método, detecte um tipo TVP-ish e adicione o parâmetro manualmente.