【发布时间】:2017-11-27 11:00:31
【问题描述】:
这让我在自递归循环中转了两天。
我有一个递归 ObjectModel,我在其中将单个对象转换为 Microsoft.Azure.Documents.Document。当我使用递归时,下例中的“phone_numbers”属性是List(Of Document)。
如何摆脱 "_rid", "_self", "_ts", "_etag" 属性?由于不知道它们叫什么,让我称它们为元属性。
我想在保存到数据库之前删除它们,或者 - 甚至更好 - 避免生成它们?
我的代码生成的内容:
{
"id": "object768f02af46b24a5c86c1e5eeaae721c6",
"family_name": "Green",
"given_name": "Thomas",
"phone_numbers": [
{
"id": "eb8e6d6b6317499c96c568a2b6088101",
"_rid": null,
"_self": null,
"_ts": 0,
"_etag": null,
"name": "private phone",
"number": "564894654"
},
{
"id": "e8ffb8de9d55489cb84d3342189240c1",
"_rid": null,
"_self": null,
"_ts": 0,
"_etag": null,
"name": "work phone",
"number": "654649684684"
}
]
}
这是Document.ToString() 在写入 DocumentDB 之前的未修改输出。我不知道为什么此时根文档中没有元标记。但我似乎也不需要它们,因为......
保存到数据库的内容:
{
"id": "object768f02af46b24a5c86c1e5eeaae721c6",
"_rid": "9ikLAL9mDQATAAAAAAAAAA==",
"_self": "dbs/9ikLAA==/colls/9ikLAL9mDQA=/docs/9ikLAL9mDQATAAAAAAAAAA==/",
"_etag": "\"00000200-0000-0000-0000-5a1bed1c0000\"",
"family_name": "Green",
"given_name": "Thomas",
"phone_numbers": [
{
"id": "eb8e6d6b6317499c96c568a2b6088101",
"_rid": null,
"_self": null,
"_ts": 0,
"_etag": null,
"name": "private phone",
"number": "564894654"
},
{
"id": "e8ffb8de9d55489cb84d3342189240c1",
"_rid": null,
"_self": null,
"_ts": 0,
"_etag": null,
"name": "work phone",
"number": "654649684684"
}
],
"_attachments": "attachments/",
"_ts": 1511779612
}
...根对象的正确元标记是在写入 DocumentDB 时创建的。伟大的。但是子文档中的元标记是空的。我不需要它们,显然 DocumentDB 也不需要它们。
我最终希望将其保存到数据库中:
{
"id": "object768f02af46b24a5c86c1e5eeaae721c6",
"_rid": "9ikLAL9mDQATAAAAAAAAAA==",
"_self": "dbs/9ikLAA==/colls/9ikLAL9mDQA=/docs/9ikLAL9mDQATAAAAAAAAAA==/",
"_etag": "\"00000200-0000-0000-0000-5a1bed1c0000\"",
"family_name": "Green",
"given_name": "Thomas",
"phone_numbers": [
{
"id": "eb8e6d6b6317499c96c568a2b6088101",
"name": "private phone",
"number": "564894654"
},
{
"id": "e8ffb8de9d55489cb84d3342189240c1",
"name": "work phone",
"number": "654649684684"
}
],
"_attachments": "attachments/",
"_ts": 1511779612
}
我发现很难找到与 DocumentDB 相关的信息、Microsoft.Azure.Documents 的内部工作原理,并且我缺乏正确术语的知识,因此非常感谢您提供该方向的指针。
【问题讨论】:
标签: .net azure azure-cosmosdb