可以为空的对象必须有一个值 - 为什么?

Chr*_*ris 5 c# linq linq-to-sql

我有以下LINQ查询

from p in dc.Purchases
where invoiceNumber == null || p.InvNumber == invoiceNumber.Value
select p;
Run Code Online (Sandbox Code Playgroud)

'invoiceNumber'是一个可空的int - 当它为null时,程序抛出'Nullable对象必须有一个值错误'.当它明确检查它是否为空时为什么会这样?有没有解决的办法?

谢谢,

Zah*_*med 0

尝试这个:

from p in dc.Purchases
where invoiceNumber == null ||(invoiceNumber!=null && p.InvNumber == invoiceNumber.Value)
select p;
Run Code Online (Sandbox Code Playgroud)

  • 没有意义 - || 仅当第一个参数的计算结果为 false 时,运算符才会计算第二个参数 (2认同)