Existe uma maneira genérica de passar um DbType como parâmetro
-
27-10-2019 - |
Pergunta
Preciso executar esta consulta parametrizada ou equivalente:
ALTER TABLE tableName ADD COLUMN ? ?
com os parâmetros como o nome da nova coluna e o tipo de dados. Por exemplo, se eu passar 'Nome' DbType.Double, ele resolverá para:
ALTER TABLE tablename ADD COLUMN Name FLOAT
Não posso simplesmente criar um mapeamento entre DbType e o nome do tipo de campo, já que o código está funcionando na interface IDbConnection
, não em uma implementação específica.Existe uma maneira genérica de fazer isso?No momento, tenho um mapeamento separado para cada implementação, o que está obviamente longe do ideal.
Solução
Você terá que fazer isso dinamicamente e pode fazer sentido examinar uma tradução específica do provedor (para que os provedores possam fornecer seus próprios mapeamentos).