2012-04-13 214 views
1

我正在使用Linq to Entities,我只想對數據庫進行一次調用以獲取某些數據。具有對象列表的對象列表對象列表Linq to Entities

我有一個帳戶對象,可以有多個公司與它關聯。而且每家公司都可以有很多地點。我可以得到一個公司名單沒有問題的帳戶。問題是獲取每家公司的地點列表,並將其全部歸還到賬戶對象中。這是我到目前爲止的代碼:

public Account GetAccountByUserId(int userId) 
    { 
     IQueryable<Account> oq = _context.Accounts; 

     oq = oq.Include(x => x.Companies); 

     oq = oq.Include(x => x.Companies.SelectMany(l => l.Locations); //I was just guessing here, this throws the error below 

     Account acct = oq.Single(x => x.Users.Any(y => y.Id == userId)); 
     return acct; 
    } 

的.SelectMany引發錯誤: 包含路徑表達式必須引用的類型定義的導航屬性。對於參考導航屬性使用虛線路徑,對集合導航屬性使用Select運算符。 參數名稱:路徑

這對使用.Include()函數來說甚至是不可能的,但如果沒有,還有另一種方法嗎?我真的很想只打一個電話給數據庫。

+0

這有什麼不好?查詢崩潰,你有錯誤,你沒有沒有結果? – 2012-04-13 15:28:40

+0

對不起,我編輯了我原來的文章 – user962926 2012-04-13 15:57:52

回答

1

你有沒有嘗試過,包括企業和地點如下:

_context.Accounts.Include("Companies.Locations"); 
+0

完美!謝謝! – user962926 2012-04-16 17:39:28