我有以下 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 是一个整数类型的字段。这意味着当我尝试访问它时,如果它是 DBNull,我会得到一个 StronglyTypedException。上面的代码抛出了这个异常。但是,如果我删除“invRecord.Pack_Num = PSNum”并在其位置放置“True”之类的内容,则代码可以正常工作。
所以我想我的问题是,为什么当值实际上是 DBNull 时 invRecord.IsPack_NumNull() 返回 False 而我可以用什么作为条件呢?我已经把头撞在墙上一段时间了,我找不到解决这个问题的方法。