ошибка с linq join - PullRequest
       15

ошибка с linq join

1 голос
/ 19 марта 2010

У меня есть этот запрос linq:

var segreterie = from s in db.USR_Utenti join h in db.USR_Accounts
                     on new {s.ID, settings.GruppoSegreteria} 
                     equals new {h.USR_UtentiReference,h.ID_Gruppo} select s;

с этой проблемой:

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

как я могу это решить?

Ответы [ 2 ]

6 голосов
/ 19 марта 2010

Два типа должны быть одинаковыми - это означает, что им понадобятся те же имена свойств, что и при использовании анонимных типов. Попробуйте это:

var segreterie = from s in db.USR_Utenti join h in db.USR_Accounts
                 on new {s.ID, Groups = settings.GruppoSegreteria} 
                 equals new {ID = h.USR_UtentiReference, Groups = h.ID_Gruppo}
                 select s;

Предполагается, что s.ID и h.USR_UtentiReference имеют одинаковый тип, а settings.GruppoSegreteria и h.ID_Gruppo делают то же самое.

0 голосов
/ 25 марта 2011

В аналогичном примечании, если вы выполняете соединение с полем, которое может иметь значение NULL (например, int и int?), Вам может потребоваться сделать что-то вроде (где Field2 - int?

from l in Table1
join l2 in Table2
  on new { l.Field1, Field2 = (l.Field2.Value == null ? -1 : l.Field2.Value) } equals new { l2.Field1, Field2 = l2.Field2 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...