使用C#在CosmosDB中查询文档

时间:2018-06-06 01:00:05

标签: c# azure azure-cosmosdb

我有几个文档存储在Azure CosmosDB数据库中,我想从我的应用程序中查询它们。我的应用程序是用C#编写的,我想使用C#进行查询。

现在,我可以使用Azure函数执行此操作,该函数保存查询然后连接到我的程序(我连接到托管Azure函数的Web应用程序),但我对此解决方案并不完全满意,主要是因为我必须通过门户网站的GUI创建Azure功能。有没有办法在Visual Studio中本地编写Azure功能并将其集成到我的解决方案中?或者,我愿意以任何方式从Visual Studio中的代码(C#with JSON或许?)中查询CosmosDB文档。

2 个答案:

答案 0 :(得分:1)

  
    

有没有办法在Visual Studio中本地编写Azure功能并将其集成到我的解决方案中?

  

是的,我们可以在Visual Studio中本地编写Azure功能,并将其集成到我们的VS解决方案中。关于如何操作,我们可以参考:Azure Functions Tools for Visual Studio

  
    

我打开任何方式从Visual Studio

中的代码(带有JSON的C#?)查询CosmosDB文档   

这是一个简单的演示供您参考:

    public static List<T> QueryAllDocument(string Uri, string Key, string DatabaseName, string CollectionName)
    {
        DocumentClient client = new DocumentClient(new Uri(Uri), Key, new ConnectionPolicy { EnableEndpointDiscovery = false });
        List<T> list = client.CreateDocumentQuery<T>(UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName).ToString(), new SqlQuerySpec("SELECT * FROM c"), new FeedOptions { MaxItemCount = -1 }).ToList<T>();
        return list;
    }

更多信息供您参考:

Azure Cosmos DB: .NET examples for the SQL API

SQL queries for Azure Cosmos DB

答案 1 :(得分:0)

如果您不想使用Microsoft提供的.NET SDK,那么有一个名为Cosmonaut的C#库,可以让您在应用程序中查询CosmosDB非常容易。

您可以使用Cosmos的SQL

进行查询
var user = await cosmoStore.QueryMultipleAsync<dynamic>("select * from c w.Firstname = 'Smith'");

但它也支持模型映射和实体的异步查询。

免责声明:我是宇航员的创造者