이 특정 문제에 대한 해결책을 찾는 두통이 있습니다. 그래서 여기있다 : 내가 3 개 테이블이 있다고 가정하자 :부분 개체 그래프 만 반환하는 Entity Framework 쿼리
- 고객
- 주문
- 제품
나는 고객의 목록에 대한 몇 가지 필터링 자신의 주문을 검색 할 일부 고객 및 주문 '필드에 표시하고 각 엔티티의 기본 정보 만 보여주는 그래프를 반환합니다.
예를 들어 고객은 19 개의 입력란을 가질 수 있지만 ID, 성, 성을 읽을 수 있으며 주문에서 NetPrice 및 관련 제품 ID를 읽고 싶습니다. 쿼리에서 생성되는 SQL은 매우 가볍고 특정 필드 만 선택합니다.
달성 할 수있는 것이 있습니까? 그렇다면 어떻게? 나는 이것을하는 방법에 대해 매우 당혹 스럽다.
대단히 감사합니다.
편집 : 좋아, 나는 그럭저럭 할 수 있었다. 그리고 소년 그것은 빨리 지금이다!! 여기 어떻게 내가 해냈어 :
var customers = (from customer in Context.Cutomers
select new
{
customer.ID,
customer.FirstName,
customer.LastName,
Orders = customer.Orders.Select(order => new
{
order.ID,
order.NetPrice,
Products = order.Products.Select(product => new
{
product.ID
}
}
})
.AsEnumerable()
.Select(c => new Customer
{
c.ID,
//In my case, this is VERY important as it will
//try to convert from IEnumerable<T> to ICollection<T>
//which seems to need to be explicit.
Orders = c.Orders as ICollection<Order>
})
.ToList();
편집 # 2 : 내가 잘못했다 ... 그것은 잘 컴파일 모든 내 제품은 내가 다시 난처한 상황에 빠진거야 ... 비어있는, 동작하는 것 같지만. ..