让实体框架急于加载Group By

Adr*_*and 8 c# linq entity-framework group-by ef-code-first

我知道更改查询的形状会导致实体框架忽略包含调用,但是当我执行select many和group by时,有一种方法可以让它加载子属性.在以下示例中,我想通知在特定时间段内预订了工作的所有员工.在只触及数据库一次的地方之后调用.ToArray(),但我在内存中执行SelectMany和GroupBy.有没有办法让SelectMany和GroupBy在SQL服务器上发生,并且仍然包含ServiceType和Ship以及Employee详细信息?

我正在寻找一种方法来对数据库进行一次SQL调用,最后得到一个员工列表,这些员工在这段时间内有一份工作,并且他们被分配到这些工作岗位.

var employeeJobs = DataContext.Jobs.
    Include("ServiceType").
    Include("Ship").
    Include("JobEmployees.Employee").
    Where(j => j.Start >= now && j.Start <= finish).
    OrderBy(j => j.Start).
    ToArray().
    SelectMany(j => j.JobEmployees, (j, je) => new { 
        Job = j, 
        Employee = je.Employee 
    }).GroupBy(j => j.Employee);
Run Code Online (Sandbox Code Playgroud)

chr*_*ris 0

为什么不创建一个视图,然后从 EF 引用它?,这还有一个额外的好处,即由数据库服务器而不是应用程序服务器来完成工作。