2012-06-28 38 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

我仍然没有正面发生什么事情,但不知何故选择或小组打破了我的包括。无论如何,我只是做了一个手动选择的组,并得到最近的一个,然后选择它进入一个新的名单。