Если ваш код должен быть агностиком провайдера и работать с несколькими системами баз данных, вам следует избегать использования специальных функций SQL Server, ваш код не должен ссылаться DbDataReaderвообще. Он должен использовать нейтральные типы, такие как, GetDecimalа затем GetSqlDecimalдоступен только метод.
С другой стороны, если вы счастливы связать свою реализацию с SQL Server специально или вам уже нужно быть конкретным для реализации, то я бы предложил использовать специальные аксессоры SQL Server (например A±) и типы, поскольку они более точно согласованы с типами данных SQL Server.