Бинарный оператор Equal не определен между типом Nullable <Int32> и Int32

У меня есть следующая модель:

public class DeviceConfigurationModel
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    [Display(Name = "Device Configuration Id")]
    public int DeviceConfigurationId { get; set; }

    [Required]
    [Display(Name = "Device Profile Name")]
    [StringLength(50)]
    public string ProfileName { get; set; }

    [StringLength(50)]
    public string SERV { get; set; }

    [StringLength(50)]
    public string IPAD { get; set; }

    public Nullable<int> PORT { get; set; }

    [Required]
    [Display(Name = "Is Active")]
    public bool IsActive { get; set; }

    [Required]
    [Display(Name = "Date Created")]
    public DateTime DateCreated { get; set; }
}

который я заполняю через консоль менеджера пакетов с помощью командыupdate-database и следующий код в файле configuration.cs для миграции:

    context.DeviceConfigurations.AddOrUpdate(
         d => new { d.ProfileName, d.IPAD, d.PORT, d.IsActive },
              new DeviceConfigurationModel { ProfileName = "FMG Default Gateway", IPAD = "77.86.28.50", PORT = (int?)90, IsActive = true  }
    );

Однако всякий раз, когда он пытается запустить эту строку кода, я получаю следующую ошибку в консоли:

The binary operator Equal is not defined for the types 'System.Nullable`1[System.Int32]' and 'System.Int32'.

Кто-нибудь знает, как решить эту проблему, я пытался найти ответы, но большинство решений заключается в том, чтобы сделать его необнуляемым и просто принять ноль, но я не хочу этого делать, поскольку мне нужно использовать нулевое значение для некоторые поля

ОБНОВИТЬ

Поиграв с этим дальше, я сузил это до списка вещей, на которых запускается обновление: если я пропущуd.PORT с линии

d => new { d.ProfileName, d.IPAD, d.PORT, d.IsActive }

тогда обновление работает нормально. Конечно, должен быть способ заставить обновление также взглянуть на это поле, в противном случае кажется, что использование mvc довольно бесполезно, если оно не может даже обработать простую вещь, например, обнуляемый int

Ответы на вопрос(1)

Ваш ответ на вопрос