2009-07-09 4 views
0

LINQ 쿼리에서 테이블을 조인하는 데 문제가 있습니다. 당신이 볼 수 있듯이간단한 LINQ 쿼리

alt text http://www.kalleload.net/uploads/qiscjknuhutn.jpg

것은이 세 개의 테이블이있다. 내 웹 페이지에서 다음 데이터를 목록보기에 표시하려고합니다.

betid | bet.title | bet.description | match.location | match.begindate/enddate | 팀원 NAME | 팀 이름.

그래서 설명해 드리겠습니다. 나는 베팅 테이블에서 3 개의 필드를 원한다. 내가합니다 (match.matchid = bet.matchid) 내가 TEAM 테이블 (여기서 match.teamone = team.teamid 및 match.teamtwo = team.teamid) 2 개 필드를 원하는 일치 테이블에서이 개 필드를 원하는

나는 그것이 의미가 있기를 바랍니다.

감사합니다

답변

3

것 같습니다 한정된. 디자이너를 사용하는 경우 생성 된 클래스에 기존 엔터티가 있어야합니다.

var result = bet.Select(b => new { 
       BetID = b.betid, 
       Title = b.title, 
       Description = b.description, 
       BeginDate = b.match.begindate, 
       EndDate = b.match.enddate, 
       TeamOneName = b.match.team_1.teamname, 
       TeamTwoName = b.match.team_2.teamname 
       }); 

연관 이름에서만 추측하고 있습니다. 디자이너가 지정한 이름을 알아낼 수 있어야합니다.

+0

예, 동의합니다. 훨씬 더 내 솔루션보다 읽을 :) –

2
이 하나의 핵심은 다음과 같이 팀에 1 팀이 들어, 팀 테이블에 조인 자체를 포함하는 것입니다

: 이미 관계를 가지고있는 것처럼

var result = from bet in db.bet 
    join match in db.match on bet.matchid equals match.matchid 
    join team1 in db.team on match.teamone equals team1.teamid 
    join team2 in db.team on match.teamtwo equals team2.teamid 
    select new {bet.betid, bet.title, bet.description, match.location, match.begindate, match.enddate, team1.name, team2.name};