【问题标题】:How to convert SQL statment to GetItemLinqQueryable in C# with cosmosdb SDK v3如何使用 cosmos db SDK v3 在 C# 中将 SQL 语句转换为 GetItemLinqQueryable
【发布时间】:2020-07-06 10:58:08
【问题描述】:

如何将此 cosmosbd sql 字符串 "SELECT VALUE COUNT(1) FROM c" 转换为与 GetItemLinqQueryable 方法一起使用。基本上我想返回容器中的项目总数。

我正在尝试为我的 api 构建通用分页。因此我需要知道查询中的项目总数(包括所有WHERE 语句)。

【问题讨论】:

    标签: c# pagination azure-cosmosdb azure-cosmosdb-sqlapi


    【解决方案1】:

    你可以在 github 上download my demo

    我截图的效果是你应该是你想要的,如果你需要额外的帮助,请告诉我。

    包括where

                Console.WriteLine("Beginning operations...\n");
                CosmosClient client = new CosmosClient("https://localhost:8081/", "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==");
                Database database = await client.CreateDatabaseIfNotExistsAsync("ToDoList");
                Container container = database.GetContainer("jason");
                // Query for an item
                FeedIterator <dynamic> feedIterator =  container.GetItemQueryIterator<dynamic>("SELECT VALUE COUNT(1) FROM c");
                while (feedIterator.HasMoreResults)
                {
                    FeedResponse<dynamic> response = await feedIterator.ReadNextAsync();
                    foreach (var item in response)
                    {
                        Console.WriteLine(item);
                    }
                }
    

    【讨论】:

    • 答案并不如我所料。但是,由于这条线FeedIterator &lt;dynamic&gt; feedIterator = container.GetItemQueryIterator&lt;dynamic&gt;("SELECT VALUE COUNT(1) FROM c");,我会给它一个可接受的答案。基本上我不知道可以将sql 字符串传递给GetItemQueryIterator,类型为dynamic
    • @LordZed 你真好。还有什么需要帮助的,我很乐意为您提供帮助。
    猜你喜欢
    • 2020-05-17
    • 2015-03-29
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多