2017-12-28 39 views
0

다른 엔티티로 필터링하여 개체를 검색 할 때 다른 필터링 수준을 추가해야합니다. linkentity에 연결하면 현재 링크 엔티티가 가능합니까? 그것을 쓰는 방법은 무엇입니까?여러 연결 요소에 따라 엔티티를 검색하는 방법은 무엇입니까?

이것은 현재 잘 작동하는 코드입니다.

QueryExpression query = new QueryExpression("entity1"); 
query.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0));   
query.ColumnSet = new ColumnSet("entity1Id"); 
LinkEntity Link = new LinkEntity("entity1", "entity2", "entity2Id", "entity2Id", JoinOperator.LeftOuter); 
Link.LinkCriteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0));   
    Link.Columns = new ColumnSet("entity2Data"); 
    Link.EntityAlias = "entity2"; 
    query.LinkEntities.Add(Link); 

결론 : 엔티티 3에 따라 엔티티 2에 필터링을 추가해야합니다.

업데이트 :이 코드 추가 :

QueryExpression query = new QueryExpression("entity1"); 
    query.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0));        
    query.ColumnSet = new ColumnSet(true); 
    LinkEntity portfolioLink = new LinkEntity("entity1", "entity2", "**entity2dI**", "entity2Id", JoinOperator.LeftOuter); 
    portfolioLink.LinkCriteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0));     
query.LinkEntities.Add(portfolioLink); 
LinkEntity portfolioLink2 = new LinkEntity("entity3", "entity2", "entity2Id", "entity2Id", JoinOperator.LeftOuter); 
portfolioLink2.LinkCriteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0));     
query.LinkEntities.Add(portfolioLink2); 
EntityCollection characterizationeedsCollection = Service.RetrieveMultiple(query); 

내가 entity2Id 필드를 인식하지 못하는 entity1 예외가, ** entity1 필드의 이름이 불행하게도 ** 조금 다르다을하지만 전 괜찮 았는데 세 번째 엔티티 추가

답변

0

첫 번째 엔티티 엔티티와 동일합니다. 기존 코드 외에도 다음과 같은 다른 링크 엔티티를 추가하십시오.

 LinkEntity Link2 = new LinkEntity("entity2", "entity3", "entity3Id", "entity3Id", JoinOperator.LeftOuter); 
     Link2.LinkCriteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0));   
     Link2.Columns = new ColumnSet("entity3Data"); 
     Link2.EntityAlias = "entity3"; 
     query.LinkEntities.Add(Link2); 
+0

엔티티 1과 엔티티 2의 연결 필드 이름이 엔티티 2의 연결 필드와 같지 않으므로 오류가 발생합니다. 엔티티 3. 연결된 모든 엔티티에서 모든 연결 필드가 동일해야합니다. 맞습니까? – Damkulul

+0

@Damkulul 어떻게 diff 엔티티의 FK에 대해 동일한 스키마 이름을 사용할 수 있습니까? –

+0

내 코드를 추가했는데 예외는 entity1이 entity3 필드를 인식하지 못한다는 것입니다 ... 내 코드는 괜찮습니까? – Damkulul