2013-11-28 4 views
0

У меня есть таблица под названием Workbook, которая имеет отношения «один ко многим» с таблицей «Revisorsberetning», которая была связана многими с одним с проектом. Итак: Workbook -> Revisorsberetning -> ProjectLINQ double join statement

Я просто хочу, чтобы получить список проектов, которые связаны с рабочей книге дается WorkbookId

Я попытался преобразовать следующий SQL (SQL работает) в LINQ но не повезло:

select Project.PROJECT_NAME 
from Project 
inner join dbo.Revisorsberetning 
on dbo.Revisorsberetning.Project_ProjectId = dbo.Project.ProjectId 
inner join dbo.Workbook 
on dbo.Workbook.WorkbookId = 2 

это является LINQ (LINQPad, вот почему вы видите проектов и Тереза ​​не DbContext) запрос, который не кажется, чтобы работать должным образом:

var sss = from u in Projects 
join uc in Revisorsberetnings on u.ProjectId equals uc.Project.ProjectId 
join c in Workbooks on uc.Workbook.WorkbookId equals c.WorkbookId 
where c.WorkbookId == 2 
select u.PROJECT_NAME; 
+0

, если вы имеете в виду, что возвращает другое значение, попробуйте 'выбрать новый {u.PROJECT_NAME, u.ProjectId};' – Grundy

+0

также в SQL 'dbo.Workbook.WorkbookId = 2' в вашем linq 'c.WorkbookId == 1' – Grundy

+0

@Grundy, который был только опечаткой и не относился к проблеме im, имеющей – RedHotScalability

ответ

0

попробовать этот вариант

var sss = from u in Projects 
      join uc in Revisorsberetnings on u.ProjectId equals uc.Project.ProjectId 
      from c in Workbooks 
      where c.WorkbookId == 2 
      select u.PROJECT_NAME;