C# 使用表达式在EF4中快速加载多对多?

C# 使用表达式在EF4中快速加载多对多?,c#,entity-framework,entity-framework-4,entity-framework-4.1,eager-loading,C#,Entity Framework,Entity Framework 4,Entity Framework 4.1,Eager Loading,我有两个实体:grmdeploymentttempt和GrmDeploymentStep。这些实体通过中间POCOGrmDeploymentAttemptStep具有多对多关系,该中间POCO具有关于实际多对多关系的附加信息 我正在尝试通过急切加载加载包含所有步骤信息的尝试,因此现在我有以下代码: var attempt = _context.GrmDeploymentAttempts .Where(x => x.

我有两个实体:
grmdeploymentttempt
GrmDeploymentStep
。这些实体通过中间POCO
GrmDeploymentAttemptStep
具有多对多关系,该中间POCO具有关于实际多对多关系的附加信息

我正在尝试通过急切加载加载包含所有步骤信息的尝试,因此现在我有以下代码:

        var attempt = _context.GrmDeploymentAttempts
                              .Where(x => x.Id == attemptId)
                              .Include(x => x.AttemptSteps)
                              .FirstOrDefault();
问题是这种急切地加载中间表的方式,而不是急切地加载步骤表。如何将
Include()
与表达式一起使用以加载我的
步骤
实体?使用
Include(string)
方法,我可以执行
Include(“AttemptSteps.Steps”)
,但我不确定如何使用表达式执行此操作

请注意,我知道我可以改为加载
AttemptSteps
实体并在那里快速加载,但有些情况下我无法做到这一点,我一直在想如何处理这一点

var attempt = _context.GrmDeploymentAttempts
    .Where(x => x.Id == attemptId)
    .Include(x => x.AttemptSteps.Select(a => a.Step))
    .FirstOrDefault();
Include(…Select(…)
通常加载子集合的导航属性