Стремитесь загрузить многие ко многим в EF4, используя выражения? - PullRequest
2 голосов
/ 23 сентября 2011

У меня есть две сущности: GrmDeploymentAttempt и GrmDeploymentStep.Эти сущности имеют отношение «многие ко многим» через посредника POCO GrmDeploymentAttemptStep, который имеет дополнительную информацию о фактическом отношении «многие ко многим».

Я пытаюсь загрузить попытку всей информацией о шагах через готовую загрузкуИтак, прямо сейчас у меня есть следующий код:

        var attempt = _context.GrmDeploymentAttempts
                              .Where(x => x.Id == attemptId)
                              .Include(x => x.AttemptSteps)
                              .FirstOrDefault();

Проблема заключается в том, что это стремление загрузить промежуточную таблицу, но не стремится загрузить таблицу шагов.Как я могу использовать Include() с выражениями для полной загрузки моего Step объекта?Используя метод Include(string), я мог бы сделать Include("AttemptSteps.Steps"), но я не уверен, как это сделать с помощью выражений.

В качестве примечания я знаю, что вместо этого я мог бы загрузить сущность AttemptSteps и быстро избавиться оттам, но есть некоторые ситуации, когда я не могу этого сделать, и мне было интересно, как с этим справиться.

1 Ответ

2 голосов
/ 23 сентября 2011
var attempt = _context.GrmDeploymentAttempts
    .Where(x => x.Id == attemptId)
    .Include(x => x.AttemptSteps.Select(a => a.Step))
    .FirstOrDefault();

Include(...Select(...)) обычно загружает свойство навигации дочерней коллекции.

...