2009-09-17 43 views
0

使用EF如何訪問子對象列表時使用EF如何訪問父屬性中的值。使用實體框架選擇子對象列表時,如何獲取對相關父對象的引用

即我有一個項目目標和時間表對象

項目
標識
名稱
...

的TimeSheet
專案編號
用戶ID
日期
TimeSpent
...

我知道如何找回項目及其相關的時間表,但如果我想拿回所有的時間表的給定用戶,然後簡單地顯示與每個時間表記錄的項目名稱是什麼。

例如ProjectName,Date,TimeSpent

創建一個新實體來形成結果集或者我應該能夠返回IEnumerable並訪問.Project.Name字段是最佳實踐。

這是超級容易使用LINQ to SQL或只是直線上升ADO.net/SPs等,但其對EF笑死我了..

任何想法?

回答

0

孩子們總是和父母有關係。在你的情況下,它可能被稱爲「TimeSheet.Project」。因此,您可以編寫如下查詢:

var q = from u in Context.Users 
     where u.UserId == userId 
     from ts in u.TimeSheets 
     select new 
     { 
      ProjectName = ts.Project.Name, 
      Date = ts.Date, 
      TimeSpent = ts.TimeSpent 
     }; 
+0

謝謝。因此,如果您使用存儲庫模式,您會將其投影到可以通過圖層傳遞的新實體中,還是僅通過匿名類型? – Chet 2009-09-19 22:45:39

+0

匿名類型很難返回。你的方法可能需要返回像IQueryable 所以對於Repository模式,在這種情況下,我建議返回一個IQueryable ,爲此目的創建SomePOCO。 – 2009-09-19 23:23:28

相關問題