0

我有三个实体

evidence {claimId; string, 
          subject1Id: string, 
          subject2Id:string, 
          claim: Claim, 
          subject1: Subject, 
          subject2: Subject
         }
claim {id, ...}
subject {id, ...}

我正在处理每个流。假设 claimId、subject1Id 和 subject2Id 已填充,并且声明、subject1 和 subject2 没有,我想以一个新集合结束:

evidence { claimId, 
           subject1Id, 
           subject2Id, 
           claim: <where claim.id == this.claimId>,
           subject1: <where subject.id == this.subject1Id>,
           subject2: <where subject.id == this.subject2Id>
         }

我似乎无法理解如何构建存储管道。

非常感谢您的建议或指向示例的指针。

4

1 回答 1

0

只需将您的流合并到您想要的模型中即可

export class EvidencesService extends EntityCollectionServiceBase<Evidence> {
  ....
  constructor(..., pricate subjectsService: SubjectsService,  private claimsServiceL ClaimsService) {
  ...
  }

  expandedEntities$ = combineLatest([
     this.entities$,
     this.subjectsService.entities$,
     this.claimsService.entities$,
  ]).pipe(map(([evidences, subjects, claims]) =>
    Object.fromEntries(Object.entries(evidences)).map(([id, evidence]) => [id, {
      ...evidence,
      claim: claims[evidence.claimId],
      subject1: subjects[evidence.subject1Id],
      subject2: subjects[evidence.subject2Id],
    }])
    
  ));
}
于 2021-03-02T23:56:15.407 回答