2014-06-13 1 views
0

다음 두 컬렉션이 RavenDB에 있습니다. 두 컬렉션에서 데이터를 가져 오기위한 색인을 만드는 데 도움을주십시오.NULL 값을 표시하는 Ravendb LoadDocument

public class Ticket 
{ 
    public string TicketID{get;set;} 
    public double Total{get;set;} 
} 

public class ImportTiming 
{ 
    public string Id{get;set;} 
    public DateTime ExtractTime{get;set;} 
} 

AND 

public class ResultClass 
    { 
     public string TicketID{get;set;} 
     public double Total{get;set;} 
     public DateTime ExtractTime{get;set;} 
    } 

TICKETID (티켓) & 아이디 (ImportTiming)는 똑같아가 ExtractTime에 대한 LoadDocument를 사용하고 있지만 NULL 값을 보여주고 있습니다.

미리 감사드립니다.

답변

0

마지막으로 나는 해결책을 얻었습니다 ... 벨로우 (Bellow)는 LoadTocument <>을 사용하여 ImportTiming 문서에서 데이터를 선택하는 Map-Reduce 기능입니다. 난하는 콜렉션을 사용 해달라고 전체 document.If을 얻는 것이 그때는 NULL 값이 표시되도록

LoadDocument에서
public class IdxJoinBetweenCollections : AbstractIndexCreationTask<Ticket,JoinBetweenCollections.ResultClass> 
    { 
     public IdxJoinBetweenCollections() 
     { 
      Map = docs => from doc in docs 
         let TimeDoc = LoadDocument<ImportTiming>("ImportTiming/" + doc.TicketID) 
          select new 
          { 
           ID = doc.TicketID, 
           Total = doc.Total, 
           ExtractTime = TimeDoc.ExtractComplete, 
          }; 
      Reduce = results => from res in results 
           group res by res.ID into g 
           select new 
           { 
            ID = g.Key, 
            Total = g.Select(x => x.Total).FirstOrDefault(),                  
            ExtractTime = g.Select(x => x.ExtractTime).FirstOrDefault(), 

           }; 
     } 
    } 

는 ("ImportTiming /"+ doc.TicketID) 내가 사용한하는 콜렉션 이드 하였다. 참조 : http://ravendb.net/docs/2.0/client-api/querying/static-indexes/indexing-related-documents