【问题标题】:Query AzureDB document for document with ID?查询 AzureDB 文档以获取具有 ID 的文档?
【发布时间】:2018-01-30 07:13:37
【问题描述】:

我正在尝试在我拥有的“id”数据库中查询“课程”文档,我有以下内容:

collUrl = UriFactory.CreateDocumentCollectionUri("id", "course");
            if(client.CreateDocumentQuery(collUrl).Where((x)=>x.Id == "course1").FirstOrDefault() == null){

产生错误:

[30/01/2018 6:26:19 AM] 执行函数时出现异常: 同步课程。 System.Private.CoreLib:出现一个或多个错误。 (查询表达式无效,表达式 https://mydb-australiaeast.documents.azure.com/dbs/id/colls/course.Where(x => (x.Id == "course1")).FirstOrDefault() 不受支持。支持的表达式是 'Queryable.Where'、'Queryable.Select' & 'Queryable.SelectMany',Windows/10.0.16299 文档数据库-netcore-sdk/1.7.1)。 Microsoft.Azure.DocumentDB.Core:查询 表达式无效,表达式 https://mydb-australiaeast.documents.azure.com/dbs/id/colls/course.Where(x => (x.Id == "course1")).FirstOrDefault() 不受支持。支持的表达式是 'Queryable.Where'、'Queryable.Select' & 'Queryable.SelectMany',Windows/10.0.16299 文档数据库-netcore-sdk/1.7.1。 [30/01/2018 6:26:19 AM] 例外情况 执行功能:SynchCourse [30/01/2018 6:26:19 AM] 异常 执行功能时:SynchCourse。 System.Private.CoreLib:一个或 发生了更多错误。 (查询表达式无效,表达式 https://mydb-australiaeast.documents.azure.com/dbs/id/colls/course.Where(x => (x.Id == "course1")).FirstOrDefault() 不受支持。支持的表达式是 'Queryable.Where'、'Queryable.Select' & 'Queryable.SelectMany',Windows/10.0.16299 文档数据库-netcore-sdk/1.7.1)。 Microsoft.Azure.DocumentDB.Core:查询 表达式无效,表达式 https://mydb-australiaeast.documents.azure.com/dbs/id/colls/course.Where(x => (x.Id == "course1")).FirstOrDefault() 不受支持。支持的表达式是 'Queryable.Where'、'Queryable.Select' & 'Queryable.SelectMany',Windows/10.0.16299 文档数据库-netcore-sdk/1.7.1。 [30/01/2018 6:26:19 AM] 功能 完成(失败,Id=d2f1ab38-32f2-46a3-9831-94477b113205, 持续时间=37625ms)

【问题讨论】:

    标签: c# azure


    【解决方案1】:

    请尝试使用以下代码。

    if(client.CreateDocumentQuery(collUrl).Where((x)=>x.Id == "course1").AsEnumerable().FirstOrDefault() == null)
    

    AsEnumerable的原因是为了

    AsEnumerable(TSource)(IEnumerable(TSource)) 可用于在序列实现 IEnumerable(T) 但也有一组不同的公共查询方法可用时在查询实现之间进行选择

    更多信息,您也可以参考Understanding .AsEnumerable() in LINQ to SQL

    【讨论】:

    • 我收到错误:(无法加载 DLL 'Microsoft.Azure.Documents.ServiceInterop.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E))。 Microsoft.Azure.DocumentDB.Core:无法加载 DLL 'Microsoft.Azure.Documents.ServiceInterop.dll
    • 我无法重现您在我身边提到的问题,但我在 github 中找到了一个微笑的issue。如果可能,请尝试将 Microsoft.Azure.DocumentDB 版本更新为 1.19.1。如果这没有帮助,有一个重现演示项目,它会更有帮助。
    猜你喜欢
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2023-04-02
    相关资源
    最近更新 更多