질문하기질문하기
 

일반 토론Tips and tricks

모든 응답

  • 2008년 6월 9일 월요일 오후 4:48Tony PetrossianMSFT, 중재자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Maximum number of entities returned (page size):

    SSDS returns a maximum of 500 entities for a query result.  The result list is always ordered by the entity ID.    


    Entity order in query result:

    A query result is always ordered by entity IDs.




    Tonyp
  • 2008년 6월 9일 월요일 오후 6:05Tony PetrossianMSFT, 중재자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    How to get more than 500 entities in a query result:

    If a query has a result set smaller or equal to 500 then you get all the results of the query in one page.  If a query has more than 500 entities in the result set then you need to run the query multiple times to get all the results (500 at a time).  Since the query always returns the results in order of Entity ID you can use the last entity ID as a filter for the next query.  Here is a sample code section:

     

    string lastId = "";
    string query = @"from e in entities where e[""Someprop""]== ""Some Value"" && e.Id > ""{0}"" select e";
    while (true)
    {
      int count = 0;
      foreach (Entity entity in proxy.Query(myContainerScope, String.Format(query, lastId))
     
    {
         // Do something with entities
         …
        
    lastId = entity.Id;
         count++;
     
    }
     
    if (count < 500)
       
    break;    // last page if less than 500 results


    Tonyp
  • 2008년 7월 8일 화요일 오전 12:55Shawn WildermuthMVP사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Since Ids are always strings we get results ordered non-numerically (e.g. 1, 100, 101).  Any way to do casting with SSDS to cast it to a int to get proper ordering?  Not that ordering by Id is important but it would be useful in other situations.
    http://www.silverlight-tour.com
  • 2008년 10월 3일 금요일 오후 6:32AnilredMSFT사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    Shawn
    Is this still on your radar!!

    Anil
  • 2008년 11월 6일 목요일 오후 4:00Nigel EllisMSFT사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
     
    Shawn Wildermuth said:

    Since Ids are always strings we get results ordered non-numerically (e.g. 1, 100, 101).  Any way to do casting with SSDS to cast it to a int to get proper ordering?  Not that ordering by Id is important but it would be useful in other situations.


    Shawn, you can accomplish this by zero padding your Id's so they follow the pattern 000001, ... 000100, etc.    This is the same trick you'll see for naming images on your digital camera and it sorts in "numeric order".

    Nigel.

  • 2009년 1월 13일 화요일 오후 3:22Shan McArthurMVP사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
     
    Tony Petrossian said:


    A query result is always ordered by entity IDs.


    Tonyp



    This is not true - SDS supports orderby in the query syntax, and when that is used, results are ordered by the criteria that you state.  This means that SDS entities are not always ordered by entity IDs, and the code snippet used earlier in this tip to page will not work for ordered queries.

    Shan McArthur
    www.shanmcarthur.net