2009-12-29 86 views
0

我有這個實體查詢的問題,我希望得到一些幫助。.net實體查詢

總的來說,我想要做的是查詢GoalNotes表中的條目以及包含每個備註的Employee參考。 GoalNotes表具有與Employee表相關的外鍵。

我然後試圖根據特定的目標ID查詢GoalNotes表。 GoalNotes表也具有與Goal表的關係設置。

我有一個看起來像三個表如下:

員工 標識, 名字, 姓氏

GoalNotes 標識, 目標, 說明, 員工, CreatedDt

目標 標識, 說明, CreatedDt

我想使用的查詢是這樣的:

public List<GoalNotes> LoadGoalNotes(int goalId) 
{ 
    var notes = from note in GoalNotes.Include("Employee") 
       where Employee.Any(e => e.Id == note.Employee.Id) 
       where note.Goal.Id == goalId 
       orderby note.CreatedDt descending 
       select note; 

    return notes.ToList(); 
} 

這種方法存在一個包含我的實體對象的部分類的的EntityContext文件。 這個問題似乎在我如何試圖包含員工參考。查詢的作品,如果我刪除where Employee.Any(e => e.Id == note.Employee.Id)線(不包括員工參考)

在此先感謝!

+0

如果你沒有說明你打算做什麼,我無法幫助你解決這個問題。這顯然是錯誤的,但據我所知,你正在刪除的部分無論如何都不會做任何有用的事情。你想通過包括它來完成什麼? – 2009-12-29 20:15:28

+0

我已更新我的問題,希望更清楚。我希望它有幫助。謝謝。 – 2009-12-29 20:54:51

回答

2

爲包括僱員,你只需要調用Include - 沒有別的:

var notes = from note in GoalNotes.Include("Employee") 
      where note.Goal.Id == goalId 
      orderby note.CreatedDt descending 
      select note; 

的EF已經理解GoalNoteEmployee(它在EDMX),您不需要複製之間的關係這個信息在你寫的每個查詢中。

+0

夠簡單!謝謝! – 2009-12-29 21:56:03