2011-09-07 3 views
3

를 사용하여 두 개의 테이블에서 여러 열을 기준으로 조인문제는 세 개의 열 두 테이블을 조인하려고 내가 오류를 얻고있다 LINQ

error CS1941: The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'Join'. 

내가 무슨 일이 일어나고 있는지 모르겠습니다. st_year, st_month, st_dayyear, monthday의 유형을 확인했으며 모두 int이므로 오류가 발생하지 않아야합니다.

코드는 다음과 같습니다

var q = from obj in objTimeLine     
         join ev in eventsTimeLine 
         on new {obj.st_year, obj.st_month, obj.st_day} equals new {ev.year, ev.month, ev.day} 
         select new {obj, ev}; 

나는 그러나 할 경우

var q = from obj in objTimeLine     
          join ev in eventsTimeLine 
          on obj.st_year equals ev.year 
          select new {obj, ev}; 

을 그리고 거기에 오류가없고 모든 것이 괜찮지 만, 나는이 다른 열보다 가입하는 방법을 모른다 .

답변

6

당신은 익명의 유형과 같이 동일한 속성 이름이 있는지 확인해야합니다 : 그것은 작동하고 당신의 도움에 대한

on new { Year = obj.st_year, Month = obj.st_month, Day = obj.st_day} 
equals new { Year = ev.year, Month = ev.month, Day = ev.day} 
+0

감사합니다! – Dmitris

관련 문제