假设我有一个包含三个实体“Item”、“ItemType”和“ItemPart”的实体模型。我正在尝试编写一个查询,该查询将为每个项目类型提取最新项目(按 item.date),并将这些部分包含在查询中,以便在获得结果后使用它们。我写了一个如下所示的查询:
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 行,则包含的对象为空。我究竟做错了什么?
编辑:做了一些更多的测试。似乎实际上是选择破坏了包含。我猜他们没有通过选择。现在找到一种方法来构建有效的查询。