我正在尝试查询“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)
答案 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