Ok, então eu tenho isso funcionando. O principal problema era que isso precisa comparar
null com null , porém um int não pode ser null pois é um tipo de valor. Então eu tive que fazer alguns ajustes com meu código e consegui isso funcionando com a solução alternativa
int? AreaCode = null;
Isso me permitiu alterar meu código:
mySqlCommand.Parameters["@AreaCode"].Value = (PModel.AreaCode.HasValue ? PModel.AreaCode.Value : object)DBNull.Value );
Para todos aqueles que não estão cientes do que está acontecendo aqui:
O operador
? dá a um tipo de valor a capacidade de não ter valor , então pode =null . ou seja.
int n = 0;
int? n = null;
bool b = false;
bool? b = null;