C# 使用Azure DocumentDB和MVC5处理动态数据

C# 使用Azure DocumentDB和MVC5处理动态数据,c#,azure,azure-cosmosdb,C#,Azure,Azure Cosmosdb,我使用动态数据类型与Azure DocumentDB一起工作,即,我没有为正在使用的数据预先定义任何类。我正在使用以下形式的调用查询我的DocumentDb数据库/集合: client.CreateDocumentQuery<dynamic>(UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId), query).ToArray(); client.CreateDocumentQuery(UriFactory

我使用动态数据类型与Azure DocumentDB一起工作,即,我没有为正在使用的数据预先定义任何类。我正在使用以下形式的调用查询我的DocumentDb数据库/集合:

client.CreateDocumentQuery<dynamic>(UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId), query).ToArray();
client.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri(DatabaseId,CollectionId),query).ToArray();
返回的对象似乎属于Micrsoft.Azure.Documents.QueryResult类型

当查询作为MVC操作的一部分包含时,当结果传回客户端时,它们将成为空对象

我希望能够得到“动态”数据,这些数据可以作为JsonResponse的一部分进行序列化


要将每个Micrsoft.Azure.Documents.QueryResult转换为动态,我需要做什么?

根据您的描述,我试图构建我的MVC Web应用程序,我可能会遇到与您提到的相同的问题

我希望能够得到“动态”数据,这些数据可以作为JsonResponse的一部分进行序列化

您可以利用以下代码:

var results=client.CreateDocumentQuery<dynamic>(UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId), query).ToArray();
return Content(JsonConvert.SerializeObject(results), "application/json");
var results=client.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri(DatabaseId,CollectionId),query).ToArray();
返回内容(JsonConvert.SerializeObject(结果),“application/json”);
结果


太好了-效果很好。非常感谢。作为后续措施,使用这种方法,DocumentDb特定的字段,如_attach、_etag、_rid、_self和_ts也会序列化(如屏幕截图所示)。关于如何最好地排除/删除这些属性,您有什么想法吗?您可以利用一个仅根据您的场景序列化属性的自定义(排除名为_attach、_etag、_rid等的属性),有关更多详细信息,您可以参考此[教程()。