Historycznie parametry wyceniane w tabeli nie były zbytnio skupione na eleganckich; głównie dlatego, że działają tylko na SqlConnection
(Dapper próbuje celować w dowolnych dostawców, w tym "dekorowanych" dostawców ADO.NET - tj. gdzie SqlConnection
chowa się pod jakimś opakowaniem). Co możesz do to implementacja IDynamicParameters
ręcznie (lub po prostu pożycz istniejące DynamicParameters
class), aby dodać tę funkcjonalność:
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;
...
}
Postaram się również, aby konkretne DynamicParameters
klasa bardziej polimorficzna tutaj, dzięki czemu w przyszłej kompilacji możesz po prostu override
pojedynczą metodę, wykryj typ TVP i dodaj parametr ręcznie.