C # ADO.NET: nulos e DbNull - existe uma sintaxe mais eficiente?

eu tenho umaDateTime? que estou tentando inserir em um campo usando umDbParameter. Estou criando o parâmetro assim:

DbParameter datePrm = updateStmt.CreateParameter();
datePrm.ParameterName = "@change_date";

E então eu quero colocar o valor doDateTime? nodataPrm.Value enquanto responde pornulls.

Eu pensei que inicialmente seria inteligente:

datePrm.Value = nullableDate ?? DBNull.Value;

mas isso falha com o erro

Operador '??' não pode ser aplicado a operandos do tipo 'System.DateTime?' e 'System.DBNull'

Então, acho que isso só funciona se o segundo argumento for uma versão não anulável do primeiro. Então eu fui para:

datePrm.Value = nullableDate.HasValue ? nullableDate.Value : DBNull.Value;

mas isso também não funciona:

O tipo de expressão condicional não pode ser determinado porque não há conversão implícita entre 'System.DateTime' e 'System.DBNull'

Mas não quero converter entre esses tipos!

Até agora, a única coisa que posso trabalhar é:

if (nullableDate.HasValue)
  datePrm.Value = nullableDate.Value;
else
  datePrm.Value = DBNull.Value;

Essa é realmente a única maneira de escrever isso? Existe uma maneira de obter uma linha usando o operador ternário para trabalhar?

Atualizar: Eu realmente não entendo porque o ?? versão não funciona. MSDN diz:

O ?? O operador retorna o operando do lado esquerdo, se não for nulo; caso contrário, ele retornará o operando do lado direito.

É exatamente o que eu quero!

Update2: Bem, era meio óbvio no final:

datePrm.Value = nullableDate ?? (object)DBNull.Value;

questionAnswers(5)

yourAnswerToTheQuestion