简体   繁体   English

我如何从 Azure 表存储中记录 select

[英]How do I select record from Azure table storage

i want to do a query statement on a Azure table storage.我想对 Azure 表存储执行查询语句。 Below the code I wrote:在我写的代码下面:

    public List<T> RetrieveEntity<T>(string Query = null) where T : TableEntity, new()
    {
        try
        {
            // Create the Table Query Object for Azure Table Storage  
            TableQuery<T> DataTableQuery = new TableQuery<T>();
            if (!String.IsNullOrEmpty(Query))
            {
                DataTableQuery = new TableQuery<T>().Where(Query);
            }
           IEnumerable<T> IDataList = table.ExecuteQuery(DataTableQuery); 
            List<T> DataList = new List<T>();
            foreach (var singleData in IDataList)
                DataList.Add(singleData);
            return DataList;
        }
        catch (Exception ExceptionObj)
        {
            throw ExceptionObj;
        }
    }

How do I put in the following row?如何放入下一行?

IEnumerable IDataList = table.ExecuteQuery(DataTableQuery); IEnumerable IDataList = table.ExecuteQuery(DataTableQuery);

in order to make all working?为了使所有工作?

Thanks, Simone谢谢,西蒙娜

Here's one way to do it.这是一种方法。

Step 1. Get the query.步骤 1. 获取查询。 Here's an example from Writing LINQ queries against the Table service这是针对表服务编写 LINQ 查询的示例

var query = from entity in dataServiceContext.CreateQuery<SampleEntity>(tableName) where entity.PartitionKey == "MyPartitionKey" select new { entity.RowKey };

or或者

var partitionQuery = TableQuery.GenerateFilterCondition
                     ("PartitionKey", QueryComparisons.Equal, myKey);

or或者

var startQ = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThan, start);
var endQ= TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThan, end);
var q = TableQuery.CombineFilters(startQ, TableOperators.And, endQ);

Step 2. Get the data步骤 2. 获取数据

public async Task<List<T>> GetDataAsync<T>(TableQuery<T> query)
{
    var l = new List<T>();
    TableContinuationToken continuationToken = null;
    do
    {
        var queryResponse = await table.ExecuteQuerySegmentedAsync(query, continuationToken);
        continuationToken = queryResponse.ContinuationToken;
        l.AddRange(queryResponse.Results);
    } 
    while (continuationToken != null);
    return l;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM