首页 文章

查询具有ID的文档的AzureDB文档?

提问于
浏览
0

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

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

产生错误:

[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 documentdb-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 documentdb-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 documentdb-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 documentdb-netcore-sdk / 1.7.1 . [30/01/2018 6:26:19 AM]功能完成(失败,Id = d2f1ab38-32f2-46a3-9831-94477b113205,持续时间= 37625ms)

1 回答

  • 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

相关问题