문제

자녀 데이터 세트를 제한하는 방법을 알아 내려고 노력하고 있습니다. 활성 기록 만 포함합니다 ...

    // Here's what I have currently...
    m_BackLoggerEntities.Stories
     .Include("Sprints")
     .Include("Tasks")
     .Include("Efforts")
     .Include("Products")
     .First(s => s.StoryId == id);


    // Here's what I thought I could do...
    m_BackLoggerEntities.Stories
     .Include("Sprints")
     .Include("Tasks")
     .Include("Efforts")
     .Include("Products")
     .Where(s => s.Tasks.Active)
     .First(s => s.StoryId == id);


    // I also tried this...
    m_BackLoggerEntities.Stories
     .Include("Sprints")
     .Include("Tasks")
     .Include("Efforts")
     .Include("Products")
     .First(s => s.StoryId == id && s => s.Tasks.Active));

분명히 이것들 중 어느 것도 작동하지 않습니다. 어떻게 해야할지 잘 모르겠습니다 ...

도움이 되었습니까?

해결책

보세요 알렉스 제임스 팁 37. 링크 된 기사의 예에 따르면 다음과 같이 수행 할 수 있습니다.

var query = from story in m_BackLoggerEntities.Stories
            where story.StoryId == id
            select new {
                          story,
                          Tasks = from task in story.Tasks
                                  where task.Active
                                  select task
                       };

var stories = query
   .AsEnumerable()
   .Select(x => x.Story);

"이야기"내부의 각 이야기에는 활발한 작업 만 있어야합니다.

다른 팁

다음과 같은 것이 필요합니다.

Model = m_BackLoggerEntities.Stories
    .Include("Sprints")
    .Include("Tasks")
    .Include("Efforts")
    .Include("Products")
    .SingleOrDefault(s => s.StoryId == id);

그런 다음, 당신의 견해로 :

@foreach (var task in Model.Tasks.Where(t => t.Active))

내가 원하는 것을 "시뮬레이션"하는 유일한 방법은 사용하는 것입니다 ...

        var storyToDetail =
            m_BackLoggerEntities.Stories
                .Include("Sprints")
                .Include("Tasks")
            .Include("Efforts")
            .Include("Products")
                .First(s => s.StoryId == id);

그런 다음 시야의 foreach에서 ...

            <% foreach (var task in Model.Tasks.Where(t => t.Active))

그러나 이것은 물론 내가 원하는 것보다 더 많은 레코드를 되찾아줍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top