我一直遇到以下错误
PartialEvalException(InvalidOperationException(" Nullable对象必须有值。"),Convert(PartialEvalException(InvalidOperationException(" Nullable对象必须有值。"),PartialEvalException(InvalidOperationException) (" Nullable对象必须有一个值。"),Convert(PartialEvalException(InvalidOperationException(" Nullable对象必须有一个值。"),Convert(null))))。GetInvolvementType ())))
当我尝试使用以下where子句运行nHibernate Linq查询时:
where (Id.HasValue == false || (Id.HasValue && tbl.Id == Id.Value))
&& (myDate.HasValue == false || (myDate.HasValue && tbl.Date <= myDate.Value))
答案 0 :(得分:2)
NHibernate可能无法正确地将HasValue
翻译成SQL语句,我会尝试与null
进行比较:
(Id == null || tbl.Id == Id) && (myDate == null || tbl.Date <= myDate))
请注意,在每个HasValue
子句的第二部分中检查&&
是多余的 - 我已经将其删除了。您也可以通过这种方式直接比较非可空和可空类型。