У меня есть следующее утверждение LINQ:
Dim PSNum As Integer = 66
Dim InvSeq = (From invRecord In InvSeqDataSet.RptInvSeqDT.AsQueryable() _
Where IIf(invRecord.IsPack_NumNull(), False, invRecord.Pack_Num = PSNum) _
Select New With _
{.Inv = invRecord.Invoice_Num, .Seq = invRecord.Inv_Seq}).FirstOrDefault()
invRecord.Pack_Num - это поле типа Integer. Это означает, что когда я пытаюсь получить к нему доступ, если это DBNull, я получаю StronglyTypedException. Приведенный выше код вызывает это исключение. Если, однако, я удаляю «invRecord.Pack_Num = PSNum» и на его место ставлю что-то вроде «True», код работает нормально.
Итак, я предполагаю, что мой вопрос таков: почему этот invRecord.IsPack_NumNull () возвращает False, когда значение фактически DBNull и что я могу использовать вместо него как условное? Я уже некоторое время бьюсь головой о стену и не могу найти решение этой проблемы.