我有一个子查询,返回子表中最近的值。在某些情况下,子查询没有返回值。下面的查询在运行时失败,因为MemberPrice的推断类型是decimal类型,且不可为空。
简化后的查询:
在SQL中,子查询会包含Top (1),当为空时返回Null。我该如何处理LINQ中的这个问题?是否有一种方法使MemberPrice可空,或者如果找不到则将值默认为零(或更优雅的解决方案)?
非常感谢,斯图尔特。
简化后的查询:
Dim q = From s In dc.STOCKs _
Select s.ID, MemberPrice = _
(From mp In dc.STOCKPRICEs Where mp.NUMBER = s.NUMBER _
Order By dc.date Descending _
Select mp.PRICE).FirstOrDefault
在SQL中,子查询会包含Top (1),当为空时返回Null。我该如何处理LINQ中的这个问题?是否有一种方法使MemberPrice可空,或者如果找不到则将值默认为零(或更优雅的解决方案)?
非常感谢,斯图尔特。
FirstOrDefault
将结果从Decimal
序列转换为单个的Decimal?
。这就是 null 的来源。 - Suncat2000