2012-06-03 3 views
1

WADLogsTable에서 마지막 100 개의 레코드를 어떻게받을 수 있습니까? WadLogsTable의 마지막 레코드

나는이 코드 조각을하려고 노력하지만 TSC는 TableServiceContext 인 경우는

   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); 

작동하지 않습니다.

레코드를 얻을 수 있지만 recents 로그에 관심이 있습니다.

감사합니다, 실체는 항상 돌아와 자신에 PartitionKey + RowKey으로 분류 있도록

답변

0

윈도우 Azure 테이블 스토리지, 정렬을 지원하지 않습니다. 그러나 로그 항목이 이미 역순으로 있다고 의심됩니다. 그렇지 않니?

[EDIT] 명백하게 그들은 그렇지 않습니다. :-)

+0

귀하의 게시물을 보내 주셔서 감사합니다. 로그 항목은 역의 시간 순서가 아닙니다. – GoodSpeed

+0

Steve가 지적한 것처럼 현재 테이블 스토리지는 정렬을 지원하지 않습니다. 항목이 역순으로 있지 않은 경우 먼저 로컬 컴퓨터에 항목을 다운로드 한 다음 로컬에서 정렬을 수행해야합니다. http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting에서 추천 기능을 제출할 수 있습니다. –

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(); 
관련 문제