2009-03-13 3 views
2

엔티티 프레임 워크를 사용하여 주문 세부 정보가있는 고객을 다시 불러 오려고하지만 활성화 된 Orders를 필터링하려고합니다.ObjectQuery 사용 중첩 된 where 절 포함 및 사용

Customer는 Order EntityObjects 컬렉션이있는 EntityObject입니다. CustomerDetails는 우리의 ObjectContext입니다.

아래의 코드는 모든 주문을 첨부 하겠지만 필터링하고 싶을뿐입니다. (Order.active == true). 어떻게해야합니까?

나는 Include가 중첩 된 쿼리 문을 작성한다는 것을 안다. (나는 .ToTraceString()을 사용하여 관찰 할 수있다.)이 중첩 된 select 문이나 Include에 Where 절을 첨부하려고했다.

  Customer cust; 
     CustomerDetails custTable = new CustomerDetails(); 


     cust = custTable.Customer 
      .Where("it.cust_id = " + id) 
      .Include("Order") // But we only want Order.active == true!!! 
      .ToList().First(); 

답변

0

테스트되지 않았지만 작동 할 수 있습니까?

var temp = custTable.Customer.Where("it.cust_id = " + id).Include("Order"); 
cust = (from t in temp 
     where t.Order.active == true 
     select t).ToList().First();