2012-09-14 1 views
5

F #에서 복합 키 절을 사용하여이 C# join을 작성하는 방법은 무엇입니까? :FSharp 쿼리 식에 복합 키 절을 사용하여 조인을 작성하는 방법은 무엇입니까?

join k in DataContext.Catalogs on 
    new { id = o.IDENT, v = o.VZ } equals 
    new { id = k.IDENT, v = k.VZ } 

이이에 비슷한 질문은 : 아직 대답하지 않습니다 groupby multiple columns in a F# 3.0 query . 그러나 FSharp에 쓰기가 쉽지 않다는 것을 믿을 수 없습니다.

감사

원하는 키 필드를 포함하는

답변

9

사용 튜플 : 당신은 C#에서 할 수있는 것처럼 당신이, F 번호에 이름 필드 익명의 유형을 만들 수 없습니다

query { 
    for o in DataContext.OTable do 
    join k in DataContext.Catalogs on 
    ((o.IDENT, o.VZ) = (k.IDENT, k.VZ)) 
    select (o.IDENT, k.VZ) 
} 

참고. 튜플은 아마도 가장 가깝고 가장 관용적 인 번역 일 것입니다. 토마스의 대답 here을 참조하십시오.