2012-12-19 3 views
1

SQL 서버 구문이 어디에 가입 :: 조건

select tableAColumn1, tableAColumn2, tableBColumn1 
from tableA, tableB 
where ISNUMERIC(tableAColumn1) = 1 
and CONVERT(INT, tableAColumn1) = tableBColumn1 
and tableAColumn2 = 'something' 

은 무엇 유창함 NHibernate에이를 달성하는 가장 좋은 방법이 있을까요? 결과 ClassMap을 얻는 데 몇 개의 클래스가 필요하며 어떻게 생겼을까요?

편집 :

public class BarausInfoMap : ClassMap<BarausInfo> 
    { 
     public BarausInfoMap() 
     { 
      Table("BARAUS"); 

      Id(x => x.nr); 

      Map(x => x.betrag); 

      Join("BARAUSLANG", m => 
      { 
       m.Fetch.Join(); 

       m.KeyColumn("Ula"); 
       m.Map(x => x.bezeichnung); 
       m.Map(x => x.sprache); 
       m.Map(x => x.la); 
       this.Where("m.la = 'SPE'"); 
      }); 
     } 
    } 

NR 열은 INT과 수식을 열 문자열이지만 나는 또한 그 2. 가입 할 필요는 이럴 권리는 그러나해야, 내가 추측 외부 테이블을 참조 내부 표를 참조하십시오.

+0

지금까지 한 것을 보여줄 수 있습니까? – rae1

+0

원래 게시물에 추가 된 문제 없음 – cdbeelala89

답변

1

은 아마 당신이

queryOver<BarausInfo>.JoinQueryOver(x => x.BarauslangObject, barauslangAlias, JoinType.InnerJoin, conjunction) 

같은 쿼리를 작성하고 관련이 ISNUMERIC(tableAColumn1) = 1 및 tableAColumn2이 = '뭔가'를 포함하는 대신 별도의 엔티티와 별도의 매핑을 사용하는 것이 좋습니다. 그리고 BarausInfo 매핑을 사용하면 References (v => v.BarauslangObject) .Formula ("CONVERT (INT, tableAColumn1) = tableBColumn1")와 같은 것을 구체화 할 수 있습니다. 수식에 열을 올바르게 지정하는 방법을 알아보십시오.