如何在 Azure 表中仅检索预定义数量的结果
How to retrieve only a predefined number of results in Azure Tables
我正在尝试执行 azure table 查询。
我的 table(保存日志)有数千行数据,并且每秒填充更多数据。
目前我只有1个partition key,但不影响下一道题
我怎样才能取回让我们只说 100 个最新结果。
这是我的实体:
public MainServerLogEntity(string Message)
{
this.PartitionKey = "mainserverlogs";
this.RowKey = (DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks).ToString();
this.Message = Message;
this.Date = DateTime.UtcNow;
}
public MainServerLogEntity() { }
public string Message { get; set; }
public DateTime Date { get; set; }
现在这是我在网络中执行的查询 api 我有:
[Route("MainServerLogs")]
[HttpGet]
public IEnumerable<MainServerLogEntity> GetMainServerLogs()
{
CloudTable table = AzureStorageHelpers.GetWebApiTable(connectionString, "mainserverlogs");
TableQuery<MainServerLogEntity> query = new TableQuery<MainServerLogEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "mainserverlogs"));
return table.ExecuteQuery(query);
}
但问题是我得到了很多数据,我每隔几秒就请求这个 api 以更新 ui。
我该怎么办?是否可以在查询中定义我只需要前 100 行?
如果不可能,那么我应该使用什么其他技术?
尝试像这样在查询上实现 .Take(100):
[Route("MainServerLogs")]
[HttpGet]
public IEnumerable<MainServerLogEntity> GetMainServerLogs()
{
CloudTable table = AzureStorageHelpers.GetWebApiTable(connectionString, "mainserverlogs");
TableQuery<MainServerLogEntity> query = new TableQuery<MainServerLogEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "mainserverlogs")).Take(100);
return table.ExecuteQuery(query);
}
我正在尝试执行 azure table 查询。 我的 table(保存日志)有数千行数据,并且每秒填充更多数据。
目前我只有1个partition key,但不影响下一道题
我怎样才能取回让我们只说 100 个最新结果。
这是我的实体:
public MainServerLogEntity(string Message)
{
this.PartitionKey = "mainserverlogs";
this.RowKey = (DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks).ToString();
this.Message = Message;
this.Date = DateTime.UtcNow;
}
public MainServerLogEntity() { }
public string Message { get; set; }
public DateTime Date { get; set; }
现在这是我在网络中执行的查询 api 我有:
[Route("MainServerLogs")]
[HttpGet]
public IEnumerable<MainServerLogEntity> GetMainServerLogs()
{
CloudTable table = AzureStorageHelpers.GetWebApiTable(connectionString, "mainserverlogs");
TableQuery<MainServerLogEntity> query = new TableQuery<MainServerLogEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "mainserverlogs"));
return table.ExecuteQuery(query);
}
但问题是我得到了很多数据,我每隔几秒就请求这个 api 以更新 ui。
我该怎么办?是否可以在查询中定义我只需要前 100 行? 如果不可能,那么我应该使用什么其他技术?
尝试像这样在查询上实现 .Take(100):
[Route("MainServerLogs")]
[HttpGet]
public IEnumerable<MainServerLogEntity> GetMainServerLogs()
{
CloudTable table = AzureStorageHelpers.GetWebApiTable(connectionString, "mainserverlogs");
TableQuery<MainServerLogEntity> query = new TableQuery<MainServerLogEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "mainserverlogs")).Take(100);
return table.ExecuteQuery(query);
}