c# - IQueryable 执行 LINQ 查询后返回空结果
问题描述
我正在使用 Microsoft.Azure.Documents.IDocumentClient 接口通过 CreateDocumentQuery 方法访问 CosmosDB 文档。
当我在不包含任何 linq 查询的情况下运行代码时,我的所有文档都没有问题:
client.CreateDocumentQuery<MyDatabaseClass>(CollectionUri, options)
.ToList()
我想获取文档的 ID,所以我尝试以下代码:
client.CreateDocumentQuery<MyDatabaseClass>(CollectionUri, options)
.Select(doc => doc.Id)
.ToList()
这将返回 0 个结果。
如果我在执行查询之前切换它并枚举 IQueryable ,它工作正常,但据我了解这些东西(虽然我很有可能不这样做),性能较差。
client.CreateDocumentQuery<MyDatabaseClass>(CollectionUri, options)
.ToList()
.Select(doc => doc.Id)
有谁知道我在可查询的情况下做错了什么?(注意,上面是我实际尝试实现的简化版本,但即使在这个级别上仍然会出现问题)。
数据库项架构:
{
"type": "",
"view": {
"date": "",
"paths": {}
},
"id": "",
"viewId": ""
"version": "",
"_rid": "",
"_self": "",
"_etag": "",
"_attachments": "",
"_ts": ""
}
班级:
public string Id{ get; private set; }
public string ViewId { get; private set; }
public string Version { get; private set; }
public abstract string Type { get; }
解决方案
我能够使用采用 SQL 查询而不是使用 LINQ的CreateDocumentQuery 重载来解决这个问题。
推荐阅读
- ios - HDR 成像 opencv 3.1 和 swift 4.2 图像旋转 90 度
- c# - 文件返回时出现 InvalidOperationException
- python - OSError: [Errno 10048] 尝试绑定地址时出错
- xcode - 如何在 Xcode 9.2 和 iPhone XS max 中添加模拟器 iPhone XS
- javascript - Fullcalendar updateEvent 不会重新渲染
- angular - entryComponents之间的区别
- swift - 从 iOS 版本 12 崩溃的核心数据中获取数据
- reactjs - ReactJS - 从子组件中检索状态
- r - 两个零之间的最大值
- javascript - 如何在 ReactJS 中预览视频