2011-10-21 1 views
2

linq을 사용하여 3 개의 테이블에서 유니온을 수행하는 것을 좋아합니다. 다음과 같은 작동하지 않을 이유 확실하지 :3 테이블에서 유니온을 사용하는 Linq

var repdata = (from p in db.Table1 
       select p) 
         .Union(from p in Table2 
         select p); 

답변

9

Union는 동일한 요소의 형태와 함께 작동합니다. 당신은 사용할 수 있습니다

var data = db.Table1.Select(p => new { p.Value1, p.Value2 }) 
    .Union(db.Table2.Select(q => new { q.Value1, q.Value2 }) 
    .Union(db.Table3.Select(r => new { Value1 = r.Alias1, Value2 = r.Other }); 

여기에 익명 형식이 Union이 작동 할 수 있도록,에 세 개의 테이블을 프로젝트에 일반적인 유형의 역할을합니다.

+0

존, 이런 식으로 오류가 발생합니다. 의미, 프로그램도 실행되지 않습니다. Value1, Value2 등은 무엇을 나타 냅니까? –

+0

@NatePet : 테이블에서 액세스하려는 모든 속성. 당신은 테이블에 대해 아무 것도 말하지 않았으므로 몇 가지 이름을 만들었고 3 개의 테이블 모두에서 이름이 동일하지 않은 경우 프로젝션을 사용하는 방법을 보여주었습니다. –

+0

테이블에서 테이블을 일치 시키려고했지만 예상대로 작업하지 않았습니다 :'var data = db.TerritoryReps.Select (p => new {p.Rpfn, p.Rpln}) .Union (db.RegionalManagers.Select ( –

관련 문제