【问题标题】:Query MongoDB using VB.NET - nullable types使用 VB.NET 查询 MongoDB - 可空类型
【发布时间】: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 的表示)。

【问题讨论】:

    标签: vb.net mongodb nullable


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢克雷格。是的,对不起,我原本是想在我的标题中说“C# 驱动程序”。很高兴知道我不会生气。在这种情况下,我的解决方法只是使用常规整数 - 我想我也可以切换到 c# :)
    • 是的,我正在尝试将名称更改为 .net 驱动程序。这里没有歧视:)。我们所有其他驱动程序都以其支持的语言命名,因此是最初的推理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多