Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在GroupBy情况下,使用LINQ对键对象执行包含_C#_Linq_Entity Framework Core - Fatal编程技术网

C# 在GroupBy情况下,使用LINQ对键对象执行包含

C# 在GroupBy情况下,使用LINQ对键对象执行包含,c#,linq,entity-framework-core,C#,Linq,Entity Framework Core,我有一个相对简单但复杂得离奇的例子,当我做分组时,我需要在一个冗长的对象图上执行include 以下是我的LINQ的大致外观: var result = DbContext.ParentTable .Where(p => [...some criteria...]) .GroupBy(p => p.Child) .Select(p => new { ChildObject = p.Key, AllTheThing

我有一个相对简单但复杂得离奇的例子,当我做分组时,我需要在一个冗长的对象图上执行include

以下是我的LINQ的大致外观:

var result = DbContext.ParentTable
    .Where(p => [...some criteria...])
    .GroupBy(p => p.Child)
    .Select(p => new 
    {
        ChildObject = p.Key,
        AllTheThings = p.Sum(p => p.SomeNumericColumn),
        LatestAndGreatest = p.Max(p => p.SomeDateColumn)
    })
    .OrderByDescending(o => o.SomeTotal)
    .Take(100)
    .ToHashSet();
这给了我一个匿名对象的列表,正如我所希望的那样,其中的子对象与关于该对象的一些聚合统计信息紧密关联。好的但我还需要与子对象关联的对象图的公平份额

这个ask甚至比其他方式更混乱,当我想使用现有代码时,我已经必须执行include了。也就是说,我有一个静态方法,它将获取我的子对象的IQueryable,并根据参数,返回另一个IQueryable,包括我需要的所有适当的include,其中有很多

我似乎无法找到正确的方法将我的子对象作为可查询对象,并将其交给我的include方法,以便在我想要将其表示为新的匿名对象时进行扩展,其中我说的是ChildObject=n.Key


抱歉,如果这是重复的-我确实在这里搜索并找到了接近我想要的解决方案,但不完全如此。

我似乎无法找到将我的子对象作为可查询对象的正确方法,并将其交给我的include方法,你能在这一点上展开吗,我不确定我是否完全理解你的意思mean@TheGeneral:同意,措辞不好,很抱歉。我想要的是子对象拥有它的所有包含项,就这么简单。一种解决方案是使用.GroupBy和.Select之间的.Include来获取这些。但是我需要很多include,我已经写了一个方法来获取它们——我想使用它。我想说的是,我必须给我的include方法一个IQueryable,但不知道如何在Linq查询中这样做。在DbContext.ParentTable之后包含子依赖项不起作用吗?e、 g DbContext.ParentTable.includex=>x.Child。我可以说DbContext.ParentTable…GroupByp=>p.Child.Includep=>p.Key.ChildProperty.thenCludec=>c.SomethingElse等。。。但这些包含不会成为.Select的一部分,下一步将发生。也就是说,在.Select中结束的p.键没有包含,因为p.键来自.GroupBy,而不是我认为的原始IQueryable。所以它不是这样工作的。另外,我不想让.Include与Linq语法内联——我想让我的自定义Include方法做到这一点。