我有几个文档存储在Azure CosmosDB数据库中,我想从我的应用程序中查询它们。我的应用程序是用C#编写的,我想使用C#进行查询。
现在,我可以使用Azure函数执行此操作,该函数保存查询然后连接到我的程序(我连接到托管Azure函数的Web应用程序),但我对此解决方案并不完全满意,主要是因为我必须通过门户网站的GUI创建Azure功能。有没有办法在Visual Studio中本地编写Azure功能并将其集成到我的解决方案中?或者,我愿意以任何方式从Visual Studio中的代码(C#with JSON或许?)中查询CosmosDB文档。
答案 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;
}
更多信息供您参考:
答案 1 :(得分:0)
如果您不想使用Microsoft提供的.NET SDK,那么有一个名为Cosmonaut的C#库,可以让您在应用程序中查询CosmosDB非常容易。
您可以使用Cosmos的SQL
进行查询var user = await cosmoStore.QueryMultipleAsync<dynamic>("select * from c w.Firstname = 'Smith'");
但它也支持模型映射和实体的异步查询。
免责声明:我是宇航员的创造者