2011-08-21 6 views
2

다음과 같은 쿼리를 설정하려고합니다. 그래서 완전한 개체를 선택하고있어 처음에는 .. 선택적으로 다음LINQ 쿼리를 한 열로 좁히기

var values = (from p in Products 
       where p.LockedSince == null 
       select p); 

나는 여분의 where

if(SupplierId > 0) 
    values = values.Where(p => p.SupplierId == SupplierId); 

그리고 결국, 나는 더 이상 완벽한 제품 객체가 필요하지 않습니다를 추가 해요 난 그냥 .. 같은 것을 하나의 열 (p.LocationName)의 간단한 독특하고 정렬 된 목록이 필요합니다 내가 Select(loc => new { p.LocationName }) 같은 것을 시도했다

values = values.Select(p.LocationName).Distinct().OrderBy(x => x); 

을,하지만 루와 ck.

답변

3

당신은 내가 이것을 완전히 읽는 방법을 이해하기 전에 그것은 나에게 분했다

var values = (from p in Products 
       where (p.LockedSince == null && (SupplierId <=0 || p.SupplierId == SupplierId)) 
       select p.LocationName).Distinct().OrderBy(x => x); 
+0

단일 쿼리를 작성하는 것입니다 중간 결과 더 효과적인 방법이 필요하지 않습니다,하지만 지금은 t 로직 보인다면, 그것은 내 응용 프로그램에 완벽하게 들어 맞습니다. 감사! – Tys

2
values = values.Select(p => p.LocationName).Distinct().OrderBy(x => x);