Entity Framework - Как мне присоединиться с условием ИЛИ на нескольких ключах - PullRequest
2 голосов
/ 05 октября 2010

легко объединить таблицы в два столбца

from t1 in table1
join t2 in table2 
  on new { KEY1 = t1.TB1Key1, KEY2 = t1.TB1Key2 } 
     equals new { KEY1 = t2.TB2Key1, KEY2 = t2.TB2Key2 }
select new { t1 , t2}

но что, если я хочу условие ИЛИ?SQL будет выглядеть примерно так:

select * from table1 t1
inner join table2 t2 
on t1.TB1Key1 = t2.TB2Key1 OR t1.TB1Key2= t2.TB2Key2

, но не смог найти способ сделать это в EF,

в моем случае t2.TB1Key должно бытьравен t1.TB1Key1 ИЛИ t1.TB1Key2, если t1.TB1Key1 равен нулю
, поэтому решил это так:

from t1 in table1
join t2 in table2 
  on new { KEY = t1.TB1Key1 ?? t1.TB1Key2 } 
     equals new { KEY = t2.TB2Key}
select new { t1 , t2}

, но все же хотел бы знать, возможно ли использовать ИЛИ в условии соединения

1 Ответ

3 голосов
/ 05 октября 2010

как насчет этого:

from t1 in table1
from t2 in table2
where (t1.TB1Key1 == t2.TB2Key1 || t1.TB1Key2 == t2.TB2Key2)
select new { t1, t2 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...