Acesso ao banco de dados C #: DBNull vs null

Nós temos nosso próprio ORM que usamos aqui e fornecemos wrappers fortemente tipados para todas as nossas tabelas db. Também permitimos a execução de SQL ad-hoc com tipagem fraca, mas essas consultas ainda passam pela mesma classe para obter valores de um leitor de dados.

Ao ajustar essa classe para trabalhar com a Oracle, nos deparamos com uma questão interessante. É melhor usar DBNull.Value ou null? Há algum benefício no uso de DBNull.Value? Parece mais "correto" usar null, já que nos separamos do mundo DB, mas há implicações (você não pode simplesmente cegamenteToString() quando um valor é nulo por exemplo) então é definitivamente algo que precisamos tomar uma decisão consciente sobre.

questionAnswers(4)

yourAnswerToTheQuestion