C# 中用于 Azure.Data.Tables 的 OData 表达式的 orderby 的正确语法是什么?

问题描述 投票:0回答:1

我可能到处搜索,但没有找到正确的页面,有人可以向我解释如何为

orderby
编写正确的语法。

我认为这个 & 符号有问题,它是一个查询运算符,我在

filter
条件内使用它。

当我不使用

orderby
top
时一切正常。

using Azure.Data.Tables;

// ...
TableClient releases_table;

// ...
releases_table = tableServiceClient.GetTableClient(tableName: "releases");

// ...
string filter = $"PartitionKey eq '{results[0]["productType"]}' and RowKey ne '' and RowKey ge '{startDate:yyyyMMddHHmmss}' and RowKey le '{endDate:yyyyMMddHHmmss}'&$orderby=Timestamp desc&$top=1";

var queryResponse2 = releases_table.Query<TableEntity>(filter: filter);

我想要我的 Azure 表中基于

Timestamp
属性的最新条目。

c# filter expression sql-order-by azure.data.tables
1个回答
0
投票

对于 C# 中用于 Azure.Data.Tables 的 OData 表达式,orderby 的正确语法是什么?

下面的代码使用正确的语法与

orderby
并与
OrderByDescending
属性一起正常工作,如下面的代码所示。它按降序对
Price
列进行排序,如下面的输出所示。

class Program
{
    static async Task Main(string[] args)
    {
        string connectionString = "*****";
        string tableName = "TableA";

        TableServiceClient serviceClient = new TableServiceClient(connectionString);
        TableClient tableClient = serviceClient.GetTableClient(tableName);

        string filter = $"PartitionKey eq 'Products'";

        List<TableEntity> results = await FetchSortedResults(tableClient, filter, "Price");

        foreach (TableEntity entity in results)
        {
            Console.WriteLine($"Name: {entity.GetString("Name")}, Price: {entity.GetDouble("Price")}");
        }
    }

    static async Task<List<TableEntity>> FetchSortedResults(TableClient tableClient, string filter, string orderByProperty)
    {
        List<TableEntity> entities = new List<TableEntity>();

        await foreach (TableEntity entity in tableClient.QueryAsync<TableEntity>(filter))
        {
            entities.Add(entity);
        }

        entities = entities.OrderByDescending(e => e.GetDouble(orderByProperty)).ToList();

        return entities;
    }
}

在上面的代码中,

OrderByDescending
属性使用了正确的语法,下面是成功检索数据的输出。 输出: enter image description here

欲了解更多信息,请参阅此文档

© www.soinside.com 2019 - 2024. All rights reserved.