2012-06-18 2 views
0

linqpad를 사용하고 있습니다. ODATA가 연결되어 있습니다. 엔티티는 관계가있는 왼쪽 분할 창에 나열됩니다. 제품 및 고객이라는 두 가지 항목이 있습니다. 나는 pid로 시작하는 모든 제품 id와 모든 고객의 이름을 b로 시작해야합니다. 둘 사이에는 관계가 있습니다. 제품은 고객의 자녀입니다. 어떻게해야합니까? 나는 2 일 이후 노력하고 있지만 알아낼 수는 없다. 누구든지 도울 수 있니? 이것은 기본 코드입니다. 나는 더 이상 할 일이 없다.linqpad 쿼리에서 odata의 두 엔티티를 연결합니다.

from p in products 
    where p.ProductId.StartsWith("Pid") 
    from c in customers 
    where c.Name.StartsWith("B") 
    select new 
    { 
     p.Pid, 
     c.Name 
    }; 

답변

0

두 엔티티 간의 관계가 쿼리의 결과에 어떻게 영향을 미치는지 지정할 수 있습니까? 위의 예는 ID가 지정된 값으로 시작하는 제품 만 반환하고 이름이 특정 값으로 시작되는 제품의 고객 만 반환 할 것으로 기대하십니까?

불행히도 그러한 쿼리는 OData에서 표현할 수 없습니다. ID가 특정 값으로 시작하는 모든 제품과 모든 관련 고객을 요청할 수 있습니다. 그런 다음 클라이언트에서 고객을 필터링하십시오.

from p in products 
where p.ProductId.StartsWith("Pid") 
select new Product 
{ 
    ProductId = p.ProductId, 
    Customers = p.Customers 
}; 
:

예를 들어이 당신에게 ID가 특정 값으로 시작하는 모든 제품과 모든 고객을 얻을 것이다