1

WADLogsTable Ordered by date から最後の 100 レコードを取得するにはどうすればよいですか?

私はこのコードでそれをやろうとしましたが、うまくいきません

                var query = (from entity in tsc.CreateQuery<LogsObject>("WADLogsTable")
                        where entity.PartitionKey.CompareTo(startTime.ToUniversalTime().Ticks.ToString("D19")) >= 0
                        orderby entity.EventTickCount descending
                        select entity);

tsc は TableServiceContext です。

レコードを取得できますが、最近のログに興味があります。

ありがとう、

4

2 に答える 2

0

Windows Azureテーブルストレージは並べ替えをサポートしていないため、エンティティは常にPartitionKey+RowKeyで並べ替えられます。しかし、ログエントリはすでに時系列の逆順になっていると思います。そうじゃない?

[編集]どうやらそうではありません。:-)

于 2012-06-03T18:47:56.570 に答える
0
 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ATCommon.DiagnosticConfig);
    CloudTableClient cloudTableClient = storageAccount.CreateCloudTableClient();
    TableServiceContext serviceContext = cloudTableClient.GetDataServiceContext();
    IQueryable<WadLogEntity> traceLogsTable = serviceContext.CreateQuery<WadLogEntity>("WADLogsTable");
    var selection = from row in traceLogsTable where row.PartitionKey.CompareTo("0" + DateTime.UtcNow.AddHours(hours).Ticks) >= 0 select row;
    //var selection = from row in traceLogsTable where row.PartitionKey.CompareTo("0" + DateTime.UtcNow.AddMinutes(-5.0).Ticks) >= 0 select row;
    CloudTableQuery<WadLogEntity> query = selection.AsTableServiceQuery<WadLogEntity>();
    IEnumerable<WadLogEntity> output = query.Execute();
 return output.OrderByDescending(s => s.Timestamp).Take(100).ToList();
于 2016-03-01T12:17:38.490 に答える