Проблема с простым объединением нескольких столбцов в двух таблицах с помощью linq - PullRequest
3 голосов
/ 07 сентября 2011

Я пытаюсь объединить две таблицы в трех столбцах и получаю сообщение об ошибке:

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_day year, month и day, и все они 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};

Тогда нет ошибки, и все в порядке, но я не знаю, как присоединиться, чем 2 других столбца.

1 Ответ

6 голосов
/ 07 сентября 2011

Вы должны убедиться, что анонимный тип имеет те же имена свойств, что и так:

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}
...