Как сделать «соединение» в запросе LINQ против Entity Framework - PullRequest
3 голосов
/ 09 февраля 2010

У меня есть следующая структура таблицы, которая была импортирована в Entity Framework. Мне нужно написать запрос LINQ, где я выбираю объекты таблицы 1, где поле в таблице 2 равно true, а поле в таблице 3 соответствует определенному GUID.

Может ли кто-нибудь помочь с этим?

Спасибо.

альтернативный текст http://digitalsamurai.us/images/drawing2.jpg

Ответы [ 2 ]

5 голосов
/ 09 февраля 2010

Попробуйте:

from t3 in dataContext.Table3
  where t3.Guidfield == someGuid
  from t2 in t3.Table2
  where t2.Field // boolean field is true
  select t2.Table1;

РЕДАКТИРОВАТЬ: По запросу, эквивалентный синтаксис лямбда-выражений:

dataContext.Table3.Where(t3 => t3.Guidfield == someGuid)
              .SelectMany(t3 => t3.Table2)
              .Where(t2 => t2.Field)
              .Select(t2.Table1);
0 голосов
/ 09 февраля 2010
from t1 in table1
join t2 in table2
on t1.table1PK equals t2.table1PK
join t4 in table4
on t2.table2PK equals t4.table2PK
join t3 in table3
on t3.table3PK equals t4.table3PK
where  t2.randomBoolColumn == true && t3.GUID == myGUIDVariable
select t1;
...