Uno dei problemi che spesso si hanno durante la lettura dei dati tramite Ado è scovare i DbNUll per non cadere nella maggior parte dei casi in InvalidCastException a runtime. Il risultato che se si vogliono fare le cose fatte bene abbiamo a che fare con codice prolisso o codice virtuoso inline che penalizza la leggibilità.
Una cosa interessante che si può fare per ovviare a questo è implementare un wrapper di supporto per il DataRecord. Parlo di DataRecord in quanto sono abituato a leggere i dati con il DataReader... nel caso si usa più spesso il DataAdapter non vedo...