2012-09-26 2 views
1

세 테이블 (표 A, B 및 C)이 있습니다. 나는 다음을 수행하고 싶습니다 : 특정 시점 개까지 근무 조인 사용 jointype을 수행하는, 왼쪽에 NHibernate를 사용하여 두 개의 다른 테이블 조인

지금은 사용하고 CreateCriteria C.

와 왼쪽 B와 왼쪽과 참여 조인을하지만 쿼리 예외를 던지고. 난 아무것도 놓쳤다 여부 충분한 정보를 제공 한 경우

currencies = session.CreateCriteria(typeof(Currency), "TableA")     
      .CreateCriteria("FXRates", "TableB", 
          JoinType.LeftOuterJoin, 
          Expression.Eq("fxrate.RateDate",date)) 
      .CreateCriteria("FundingRates", "TableC", 
          JoinType.LeftOuterJoin, 
          Expression.Eq("fundingrate.RateDate", date)) 
      .Add(Restrictions.IsNotNull("currency.code")) 
      .List<Currency>(); 
고급의

사과가 보자 :

코드 C보다는 A와 C.와 B에 가입 왼쪽으로 시도 할 것으로 보인다 있기 때문에이 보인다 당신이 더 필요한 경우 나

답변

1

당신은 NHibernate에 "QueryOver"를 사용할 수 있습니다 그것을 할 ... 알고

session.QueryOver<Item_A>() 
    .Left.JoinQueryOver(item_A => item_A.Item_B) 
    .Left.JoinQueryOver(item_A => item_A.Item_C) 
    .TransformUsing(Transformers.DistinctRootEntity) 
    .List(); 
+0

감사합니다 안톤, 나는이시를 살펴보고 다시 연락합니다. – Rubans

관련 문제