【发布时间】:2012-07-28 23:38:03
【问题描述】:
根据此 Jira 票证,MongoDB C# 驱动程序支持对 Nullable(Of T) 的查询: https://jira.mongodb.org/browse/CSHARP-483
但是,我无法让它正常工作。
mycol.AsQueryable.Where(Function(p) p.MyNullableInteger = 3)
按照指示,我从查询中删除了 .Value 属性,但是这破坏了严格的类型,所以我不得不删除我的 Option Strict On 子句。然后它编译成功,但理想情况下我会喜欢该子句。
PredicateTranslator 抛出异常如下:
不支持 where 子句:(Boolean)(p.MyNullableInteger == (Nullable)3)
.NET 生成的实际 Where 子句表达式为:
p => Convert((p.MyNullableInteger == ConvertChecked(3)))
我正在使用驱动程序 1.5。我的 POCO 类确实注册了一个类映射,但映射在这里没有引用该属性(它只是为我的 Id 属性设置从 String 到 ObjectId 的表示)。
【问题讨论】: