2013-10-18 5 views
0

다음은 건물의 모든 사람과 모든 컴퓨터를 반환하며이 방법은 작동합니다.RIA Servcies 필터 포함 포함 된 엔터티

컴퓨터를 Active == 1로, ActivityLogs를 ActivityTypeId == 5에만 포함하도록 변경하고 싶습니다.하지만 둘 중 하나가 없어도 반환해야합니다.

public IQueryable<Person> GetPeople(int BuildingId) 
     { 
     return this.ObjectContext.People 
       .Include("Computers") 
       .Include("ActivityLog") 
       .Where(p => p.buildingId == BuildingId && !p.migrated) 
       .OrderBy(p => p.name); 
     } 

답변

0

불행히도 이것은 Include 구문을 사용하여 불가능합니다. 또는 다음과 같이 개별 항목을 개별적으로 선택할 수 있습니다.

var queryWithAllData = this.ObjectContext 
          .People 
          .Select(p => new 
          { 
           Person = p, 
           Computers = p.Computers.Where(c => c.Active == 1), 
           ActivityLogs = p.ActivityLog.Where(a => a.ActivityTypeId == 5) 
          }); 

// Do what you need with the records now that you have all the data. 
+0

어떻게하면 RIA 서비스에서이를 다시 가져올 수 있습니까? – JBrooks

+0

나는 새로운 질문을 시작하는 것이 좋습니다. 원래 질문은 실제로 질문을하거나 설정에 대한 세부 사항과 수행하려는 내용을 포함하지 않기 때문입니다. – Ocelot20