Проблема возникает из-за того, что условный оператор не смотрит, как это значение используется (назначается в этом случае), чтобы определить тип выражения - только значения true / false. В этом случае у вас есть null и Int32, и тип не может быть определен (есть реальные причины, по которым он не может просто принять Nullable & lt; Int32 & gt;).
Если вы действительно хотите использовать его таким образом, вы должны указать одно из значений в Nullable & lt; Int32 & gt; самостоятельно, поэтому C # может разрешить тип:
EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? (int?)null
: Convert.ToInt32(employeeNumberTextBox.Text),
или
EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? null
: (int?)Convert.ToInt32(employeeNumberTextBox.Text),