1

根据此 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 的表示形式)。

4

1 回答 1

0

原来这只是 Visual Basic 中的一个错误。它在 C# 中运行良好。我在这里创建了一个 Jira:https ://jira.mongodb.org/browse/CSHARP-542 。

我还将编辑您的问题标签以包含 VB 而不是 c#。

于 2012-07-30T15:01:18.440 回答