Acceso a la base de datos de C #: DBNull vs null

Tenemos nuestro propio ORM que usamos aquí, y proporcionamos envoltorios fuertemente tipados para todas nuestras tablas de db. También permitimos que se ejecute SQL ad-hoc mal escrito, pero estas consultas aún pasan por la misma clase para obtener valores de un lector de datos.

Al ajustar esa clase para trabajar con Oracle, hemos encontrado una pregunta interesante. ¿Es mejor usar DBNull.Value, o nulo? ¿Hay algún beneficio al usar DBNull.Value? Parece más "correcto" usar null, ya que nos hemos separado del mundo DB, pero hay implicaciones (no se puede ciegamenteToString() cuando un valor es nulo, por ejemplo, por lo que definitivamente es algo sobre lo que tenemos que tomar una decisión consciente.

Respuestas a la pregunta(4)

Su respuesta a la pregunta