2009-08-02 3 views

답변

3

조인에 포함 된 테이블을 기반으로 열을 제공합니다. 당신이 표 트랜스와 TRANSID 표 UserTrans에 가입하는 경우 예를 들어, 명세서는 다음의 라인을 따라 뭔가 될 것 다음 SubSonic Simple Query Tool Docs에 따르면

SubSonic.SqlQuery query = DB.Select() 
    .From(Trans.Schema) 
    .LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn); 

왼쪽 외부 조인에 온다 때, 당신은 세 가지 옵션이 있습니다 :

왼쪽 외부

SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName")) 
     .From<Customer>() 
     .LeftOuterJoin<Order>(); 

왼쪽 외부

SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName")) 
     .From(Customer.Schema) 
     .LeftOuterJoin(Order.CustomerIDColumn, Customer.CustomerIDColumn); 
스키마

으로 가입 제네릭 가입

왼쪽 외부 매직 문자열 당신이 선호하는 표시

SubSonic.SqlQuery query = DB.Select(Aggregate.GroupBy("CompanyName")) 
     .From("Customers") 
     .LeftOuterJoin("Orders"); 

으로 가입 "왼쪽 외부 스키마에 가입하세요." 그러나 위의 각 옵션은 SubSonic SqlQuery 참조를 반환합니다. LeftOuterJoin 구문을 사용하여 List of Tran을 반환하면 좋을지 확신 할 수 없습니다. 이 문제에 대한 문서를 자세히 참고할 수도 있습니다.

UPDATE : 귀하의 코멘트 당

, 나는 우리가 더 가까이 당신이 원하는 무엇을 당신을 얻을 수 있다고 생각합니다. .LeftOuterJoin은 TableSchema.TableColumn 유형의 arguements를 제외하고 .ExecuteTypedList <>을 select에 추가하여 일반 목록을 생성 할 수 있습니다.

List<Tran> result = DB.Select() 
    .From<Trans>() 
    // parameters are of type TableSchema.TableColumn 
    .LeftOuterJoin(Trans.TransIDColumn, UserTrans.TransIDColumn); 
    .ExecuteTypedList<Tran>(); 
+0

의견에 감사드립니다. 내 테이블 개체 3.0.0.3 스키마 속성이 없으며 IColumn 형식의 열 참조를 찾을 수 사실에 의해 난처한되었다 같아요. 버전 3에서 작동하는 유일한 방법은 제네릭을 사용하는 방법이라는 것을 알았습니다. 참조 문서는 버전 2와 완전히 관련되어있는 것처럼 보입니다. 올바른 방향으로 나를 가리켜 주셔서 감사합니다. – jcomet

+0

@jcomet - 내 답변을 내 대답과 함께 인라인하십시오. 행운을 빕니다. –

+0

다시 한번 감사드립니다. Ben, 매우 도움이되었습니다. 나는 당신의 모범이 2. *에 대해서는 정확하지만 3.에 대해서는 그렇지 않다고 생각합니다. 내 LeftOuterJoin 인수 유형은 SubSonic.Schema.IColumn입니다. 내 구성이 잘못되었을 수 있습니다. – jcomet

2

jcomet 구성이 잘못되었습니다. Ben은 잘못되었습니다. 그의 코드는 2.x에서 작동하며 3.0.x가 아니라, 동일한 문제가 있기 때문에 처음으로 알고 있습니다. 위의 코드가 더 이상 작동하지 않게하는 중대한 변경이있었습니다. 문제를 한 단계 더 앞당기려면 데이터베이스의 각 테이블에 이제 두 개의 클래스가 있습니다. 예 : 'Customers'및 'CustomersTable' DataProvider를 사용하여 CustomersTable 객체를 인스턴스화하는 방법을 이해할 수 있으면 열을 참조 할 수 있으며 문자열 형식이 아닌 IColumn 형식으로 반환합니다. 행운을 빕니다, 그리고 벤, 당신의 질문에 대답하기 전에 당신의 음속을 업데이트하십시오.

관련 문제