查询具有ID?

时间:2018-01-30 07:13:37

标签: c# azure

我正在尝试查询“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-磊-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-磊-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-磊-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-磊-SDK / 1.7.1。 [30/01/2018 6:26:19 AM]功能   完成(失败,Id = d2f1ab38-32f2-46a3-9831-94477b113205,   持续时间= 37625ms)

1 个答案:

答案 0 :(得分: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