필드 중 하나가 관련된 자식의 엔티티 콜렉션 인 상위 엔티티가되는 Linq 질의를 작성하려고합니다. 예를 들어 모든 고객 엔티티 컬렉션과 모든 주문 엔티티 컬렉션이 있습니다. 주문 엔티티에는 관련 상위 고객 엔티티에 대한 링크를 포함하는 customerPK라는 필드가 있습니다. 두 개의 컬렉션을 결합하고 고객 엔터티의 모든 필드와 특정 고객 엔터티에 대한 모든 관련 주문 엔터티의 컬렉션 개체 인 추가 필드를 결합하는 Linq 쿼리를 만들고 싶습니다.부모 엔티티의 한 필드가 하위 엔티티의 집합이되는 Linq 질의
0
A
답변
1
이 트릭을 수행해야합니다.
편집 :이 예를 기반으로 왼쪽 외부 조인을 수행하도록 코드가 업데이트되었습니다. http://smehrozalam.wordpress.com/2009/06/10/c-left-outer-joins-with-linq/. 여기에는 주문이없는 고객이 포함됩니다.
var query = from c in customers
join o in orders on c.ID equals o.CustomerPK into joined
from j in joined.DefaultIfEmpty()
group j by c into g
select new { Customer = g.Key, Orders = g.Where(x => x != null) };
주, 주문 그룹의 선택에 Where
의 사용은 그래서 널 주문이 대신하지 않는 고객을 위해 하나의 널 주문을 포함하는 그룹과 결말의이 시점에서 필터링되어있다 명령을 받았다.
그런 다음 몇 가지 사용 예;
foreach (var result in query)
{
Console.WriteLine("{0} (ID={1})", result.Customer.Name, result.Customer.ID);
foreach (var order in result.Orders)
{
Console.WriteLine(order.Description);
}
}
두 개의 필드, 고객 그리고 관련 주문의 그룹과 대상이 예의 결과는,하지만 당신은 지정된 쿼리의 고객 개체의 개별 필드를 선택할 수없는 이유를 이유가 없다 귀하의 게시물에
관련 문제
- 1. 한 엔티티의 EF 맵 NavigationProperty를 다른 엔티티의 콜렉션으로 만드는 방법
- 2. LinqToEntities가 엔티티의 하위 객체를 검색하지 않습니다.
- 3. C# Linq : 그룹 다른 엔티티의 다른 열로
- 4. 엔티티 - Linq to Sql 엔티티의 일부만로드하십시오.
- 5. 엔티티의 이전 값 얻기
- 6. 부모가 저장된 직후에 하위 엔티티의 ID 가져 오기
- 7. AppEngine 엔티티의 감사 필드
- 8. 엔티티의 키 이름 변경
- 9. 엔티티의 상태 변경 추적
- 10. DDD 엔티티의 메소드와 서비스
- 11. 엔티티의 수가 적음 - 엔티티의 수가 많음 - 얼마나 많은 객체입니까?
- 12. 속성이있는 엔티티의 데이터 모델링
- 13. JPA 엔티티의 전체 복사
- 14. iPhone : 각 엔티티의 NSFetchedResultsController?
- 15. 테이블이없는 엔티티의 매핑
- 16. 두 엔티티의 NSFetchedResultsController 사용
- 17. 다른 엔티티의 뷰 재사용
- 18. DDD 엔티티의 상태 전이
- 19. 수식 속성이있는 엔티티의 CreateSqlQuery
- 20. 2 엔티티의 fetchedResultsController
- 21. NHibernate 엔티티의 임시 변경
- 22. 엔티티의 데이터 무결성 검사
- 23. 엔티티의 네비게이션 속성이로드되지 않습니다.
- 24. 엔티티의 Fk 관계
- 25. MVC2, 엔티티의 데이터 주석?
- 26. 엔티티의 데이터베이스 변경
- 27. JPA가 동일한 엔티티의 엔티티에 가입
- 28. Hibernate : 상위 엔티티의 필터가 암시 적으로 하위 엔티티를 필터링합니까?
- 29. Symfony 2 - 하위 엔티티의 옵션을 필터링하는 상위 엔티티가있는 양식을 만듭니다.
- 30. 핵심 데이터 기존 엔티티의 일대일 객체 반입
주문이없는 고객도이 쿼리를 수정할 수 있습니까? 그 고객은 결과에 포함되지 않습니다. – user31673
@ user54064 : 이제 지정한대로 동작하도록 답변을 업데이트했습니다. 느린 응답에 대해 유감스럽게 생각하지만 링크 된 예제를 우연히 발견 할 때까지이 작업을 수행하는 방법을 알지 못했습니다. –