与 DocDb 的查询结果格式差异
Differences in query result format from DocDb
我正在用 C# 包装对 DocDB 集合的访问 class,并且在映射更高级的查询时遇到了一些痛苦。在尝试使用查询资源管理器进行调试时,我注意到 json returned:
中的一些差异
select * from collection
将return
[{ "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}]
而
select c from collection c
将return
[{ "c" : { "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}}]
请注意结果是如何嵌套在 "c" 属性!
下方的
当我需要创建使用命名选择的查询并将 C# 库映射结果返回类型时,这种差异似乎会导致问题。这种查询的一个例子是
select c from collection c join n in c.names WHERE n.name = "first"
此查询必须使用 'c' 进行选择(不允许 *),以便内部映射 return 的结果数正确,但每个 returned 项目未映射(可能是因为它期望 json 属性位于最顶层而不是 "c" 属性 之下)。
有谁知道我如何获取 DocumentQuery C# api(来自 nuget 版本 1.5.3)以了解要映射的结果嵌套在命名结果下方 属性?
在 SELECT clause 下阅读后,我发现 VALUE 关键字只是 returns json 这让 C# 驱动程序再次开心。
所以我的查询最终应该是
select value c from collection c join n in c.names WHERE n.name = "first"
我正在用 C# 包装对 DocDB 集合的访问 class,并且在映射更高级的查询时遇到了一些痛苦。在尝试使用查询资源管理器进行调试时,我注意到 json returned:
中的一些差异select * from collection
将return
[{ "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}]
而
select c from collection c
将return
[{ "c" : { "id" : "1", "names" : [ {"name" : "first"}, {"name" : "second"}]}}]
请注意结果是如何嵌套在 "c" 属性!
下方的当我需要创建使用命名选择的查询并将 C# 库映射结果返回类型时,这种差异似乎会导致问题。这种查询的一个例子是
select c from collection c join n in c.names WHERE n.name = "first"
此查询必须使用 'c' 进行选择(不允许 *),以便内部映射 return 的结果数正确,但每个 returned 项目未映射(可能是因为它期望 json 属性位于最顶层而不是 "c" 属性 之下)。
有谁知道我如何获取 DocumentQuery C# api(来自 nuget 版本 1.5.3)以了解要映射的结果嵌套在命名结果下方 属性?
在 SELECT clause 下阅读后,我发现 VALUE 关键字只是 returns json 这让 C# 驱动程序再次开心。
所以我的查询最终应该是
select value c from collection c join n in c.names WHERE n.name = "first"