2012-06-28 37 views
0

可以說我有一個實體模型有三個實體「Item」,「ItemType」和「ItemPart」。我正在嘗試編寫一個查詢,以便爲每個項目類型提取最近的項目(通過item.date),並在查詢中包含這些部分,以便在得到結果後可以使用它們。我寫了一個查詢,看起來像這樣:LINQ Lambda選擇打破包括

IQueryable<Item> results = context.Items 
    .Include("ItemTypes") 
    .Include("ItemParts") 
    .Where(x => x.CurrentItem == true) 
    .GroupBy(x => x.ItemType).Select(group => group.OrderByDescending(item => item.date).FirstOrDefault()); 

如果我運行它沒有的GroupBy線一切正常,我可以得到附送的物品。如果我添加GroupBy行,則包含的對象爲空。我究竟做錯了什麼?

編輯:做了一些更多的測試。看來,它實際上是打破包含的選擇。我想他們沒有通過選擇進行。現在找到一種方法來構建可以工作的查詢。

+0

難道你不能只把包含在最後? – usr

+0

我試着把它們放在末尾或select子句中,而且都不是有效的語法。 – William

+1

試着找出它爲什麼不是。包含在ObjectQuery 上定義,因此它應該可用。 – usr

回答

0

我仍然沒有正面發生什麼事情,但不知何故選擇或小組打破了我的包括。無論如何,我只是做了一個手動選擇的組,並得到最近的一個,然後選擇它進入一個新的名單。