¿Configurando el parámetro a DBNull.Value usando la sintaxis ternaria da error?

Tengo el siguiente bit de código para establecer un parámetro que se usará en una declaración INSERT para establecer una columna VARCHAR en una base de datos de SQL Server. Mi objeto de valor (llamado ilo) tiene una propiedad llamada Descripción que se inicializa en String.Empty, y luego se establece en un valor leído de XML, o si ese elemento XML está vacío, simplemente permanece como String.Empty.

Por lo tanto, cuando se inserta en la base de datos, si la propiedad aún está establecida en String.Empty, me gustaría que inserte un valor nulo.

database.AddInParameter(cmd, "@description", DbType.String, 
                           (ilo.Description.Equals(string.Empty)) ?
                            DBNull.Value :
                            ilo.Description);

Básicamente, estoy diciendo que si ilo.Description es igual a string.empty, establezca el parámetro en DBNull.Value; de ​​lo contrario, configúrelo en ilo.Description.

Esto da el siguiente error en Visual Studio ...

Error 141 El tipo de expresión condicional no se puede determinar porque no hay una conversión implícita entre 'System.DBNull' y 'cadena'

¿Por qué?

La parte curiosa es que puedo hacer lo siguiente sin error, ¡lo que debería ser exactamente lo mismo que usar la sintaxis condicional en línea como arriba!

if(ilo.Description.Equals(string.Empty))
{
    database.AddInParameter(cmd, "@description", DbType.String, DBNull.Value);
}
else
{
    database.AddInParameter(cmd, "@description", DbType.String, ilo.Description);
}

Busqué en otras publicaciones y encontré la siguiente, pero realmente no responde a mi pregunta.

EntLib forma de vincular valor "nulo" a parámetro

Estoy más interesado en POR QUÉ, porque la solución obvia es usar una declaración if / else en lugar de la sintaxis en línea (ternaria).

Hay una especie de respuesta en este enlace, pero me gustaría una mejor explicación porque me parece que es BS que esto no funciona; Yo lo llamaría un error!

http://msdn.microsoft.com/en-us/library/ty67wk28.aspx

Respuestas a la pregunta(4)

Su respuesta a la pregunta