2010-09-19 80 views
1

我有一個非常簡單的LINQ to entites的語句: -我可以在Linq查詢中的「包含」實體上執行「Take(x)」嗎?

var query = (from q in Users.Include("UserHistory") 
      select q).Take(20); 

除了偉大工程......,爲每個用戶..史可以是n + 1。某些用戶擁有UserHistory記錄的100個。

那麼,我可以限制UserHistory記錄的數量爲.. 10或5或其他?

我需要使用預測這個嗎?沒有投影可以嗎?

回答

0

不能使用包括這樣做,但你可以試試這個:

var query = 
    from user in Users 
    select new 
    { 
     user, 
     history = user.UserHistory.Take(20) 
    }; 

我不知道是否EF能創造它的一個單獨的SQL查詢。

+0

是的 - Alex James(MS ADO.NET/Linq-To-Sql/EF/OData成名)在twitter上證實了這一點。 – 2010-09-20 06:23:08

相關問題