Ok, więc mam to działa. Głównym problemem było to, że trzeba porównać null z null , jednak int nie może być null ponieważ jest to typ wartości.
Musiałem więc trochę poprawić swój kod i udało mi się to obejść
int? AreaCode = null;
To pozwoliło mi zmienić mój kod:
mySqlCommand.Parameters["@AreaCode"].Value = (PModel.AreaCode.HasValue ? PModel.AreaCode.Value : object)DBNull.Value );
Dla wszystkich, którzy nie są świadomi tego, co się tutaj dzieje:
Operator ? daje typowi wartości możliwość nie mieć żadnej wartości , więc może =null .
tj.
int n = 0;
int? n = null;
bool b = false;
bool? b = null;