Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Tabellenwertparameter mit gespeicherten Dapper-Prozeduren

In der Vergangenheit waren Tabellenwertparameter kein großer Fokus in Dapper; hauptsächlich, weil sie nur auf SqlConnection funktionieren (dapper versucht, beliebige Anbieter anzusprechen, einschließlich "dekorierter" ADO.NET-Anbieter - d. h. wo eine SqlConnection versteckt sich unter einer Hülle). Was Sie könnten implementieren Sie IDynamicParameters manuell (oder einfach die vorhandenen DynamicParameters ausleihen Klasse), um diese Funktionalität hinzuzufügen:

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;
    ...
}

Ich werde mich auch bemühen, die konkreten DynamicParameters zu machen Klasse hier polymorpher, so dass Sie in einem zukünftigen Build einfach override können eine einzelne Methode, erkennen Sie einen TVP-artigen Typ und fügen Sie den Parameter manuell hinzu.