2012-11-20 7 views
1
를 사용하여 값을 연결

내 테이블 데이터 보인다 같은 :두 테이블을 병합 및 LINQ

table 1: 
Id CId Message 
1  1 E:MMM 
1  1 E:NNN 
1  1 E:OOO 
1  2 E:PPP 
1  2 E:PPP 

table 2: 
Id CId Message 
1  1 W:NNN 
1  1 W:OOO 

해야 LINQ 내 출력 테이블을 사용하여 두 테이블을 병합 한 후 같은 : 결과 테이블 :

Id CId ErMessage    WrMessage 
1  1  E:MMM*E:NNN*E:OOO  W:NNN*W.OOO 
1  2  E:PPP*E:PPP 

하세요 달성하는 방법을 도와주세요.

+0

이것은 여러 번 요청되었습니다. [Here] (http://weblogs.asp.net/bradvincent/archive/2008/11/01/linq-cheat-sheet.aspx)는 찾고있는 솔루션입니다. 다운로드 해. 항상 치트 시트를 보관하십시오. (당신은 join 예제를 살펴 봐야한다.) – nzic

+0

join을 사용하고 있지 않다. 이걸 좀 도와주세요. – Mani

+0

먼저 테이블의 다른 값에 대해 동일한 ID를 가질 수 있음을 알려주십시오. 즉, 표 1 : ID-1; E : MMM 표 1 : ID-1; E : NNN 서로 다른 ID라고 가정 할 수 있습니까? – nzic

답변

3
var q = 
    from t1 in 
     table1.GroupBy(g => g.ID).Select(g => new 
     { 
      ID = g.Key, 
      Message = string.Join("*", g.Select(v => v.Message).ToArray()) 
     }) 
    join 
     t2 in 
     table2.GroupBy(g => g.ID).Select(g => new 
     { 
      ID = g.Key, 
      Message = string.Join("*", g.Select(v => v.Message).ToArray()) 
     }) on t1.ID equals t2.ID 
    select new 
    { 
     ID = t1.ID, 
     ErMessage = t1.Message, 
     WrMessage = t2.Message 
    }; 
+0

고마워요 마이클 ... – Mani

+0

당신은 항상 환영합니다 –

+0

마이클 내 질문에 다시보십시오. 나는 그것을 편집했다. – Mani

관련 문제