无法使用的SelectMany在DocumentDb LINQ查询来获取parent属性
问题描述:
我有一个嵌套的文件结构,如:无法使用的SelectMany在DocumentDb LINQ查询来获取parent属性
[
{
"id": "parent1",
"children": [
{
"id": "child1",
"foo": "bar"
},
{
"id": "child2",
"foo": "bar"
},
{
"id": "child3",
"foo": "bar"
}
]
},
{
"id": "parent2",
"children": [
{
"id": "child4",
"foo": "bar"
},
{
"id": "child5",
"foo": "bar"
}
]
}
]
我能写SQL语法以下查询:
SELECT child, parent.id
FROM parent
JOIN child in parent.children
这得到我以下结果:
[
{
"child": {
"id": "child1",
"foo": "bar"
},
"id": "parent1"
},
...
]
我写了一个类似的查询在LINQ使用SelectMany子句如下s,但它会引发一个错误,说明SelectMany只能有2个参数。
collection.SelectMany(
parent => parent.children,
(parent, child) => new { child, parent.id });
答
你需要“推动”第二半波的第一半波带内嵌套Select
,像这样:
collection.SelectMany(
parent => parent.children.Select(child => new {
Child = child
, ParentId = parent.id
})
);
您的查询看起来很确定我。它是不是理解这个“SelectMany”超载的O-R映射器?确切的错误信息?如果是,dasblinkenlight的答案可以解决它。 – tinudu