Насколько я могу судить, причина кроется в том, что дело в классе AseParameter
Sybase, а не в правильном отображении значений DbType
в AseDbType
.
Вы можете обойти эту проблему, определив пользовательский набор Dapper IDynamicParameters
и наполнив его объектами AseParameter
напрямую:
public class AseCommandParameters : List<AseParameter>, SqlMapper.IDynamicParameters
{
public void AddParameters(IDbCommand command, SqlMapper.Identity identity)
{
foreach (var parameter in this)
command.Parameters.Add(parameter);
}
}
А затем передать экземпляр в запрос:
using (var connection = new AseConnection("..."))
{
connection.Open();
var parameters = new AseCommandParameters
{
new AseParameter("@table_name", "dbo.sysusers")
};
var results = connection.Query<Foo>("dbo.sp_columns", parameters,
commandType: CommandType.StoredProcedure);
}
Это работает, а также позволяет указать AseDbType
для каждого параметра.