2012-02-17 2 views
7

저는 Label이라는 열과 AuctionId라는 열이있는 Tag라는 테이블을 가지고 있습니다. 검색 용어 인 문자열 배열도 있습니다. Entity 코드에 Linq를 써서 Label이 검색 조건 중 하나와 일치하는 AuctionId의 고유 목록을 제공하고 싶습니다. 여기에 대한 의사 코드는 다음과 같습니다.엔티티 프레임 워크 - 별개로 선택하십시오.

return a list of unique AuctionIds where Label is in searchTerms 

어떻게 수행 할 수 있습니까?

답변

15

목록에서 Contains()를 사용할 수 있습니다. 다음과 명확성을 위해 람다 표기법을 사용

List<String> AuctionIDs = (from tagItem in Tags 
          where searchItems.Contains(tagItem.Label) 
          select tagItem.AutionID).Distinct().ToList(); 
5

,이 순서대로 함수의 수를 분해 :

IEnumerable<Int32> DistinctIds = TagTable.Where(x => searchTerms.Contains(x.Label)).Select(x => x.AuctionId).Distinct() 

람다 구문으로 너무 멀리가는 않고, 여기에 주요 기능은 다음과 같습니다

어디에요 (X => searchTerms.Contains (x.Label) 참조) -의 SearchTerms 컬렉션 해당 행

ALL 기타 사항 서보 -OFF (X => x.Au의 라벨 값을 포함하는 곳에서만 행을 선택한다 ctionId은) - 않습니다 단지 그것이 무엇 타인에 말한다는

희망이

을하는 데 도움이 - 전체 기록

.Distinct()이 아니라 오직 정수 AutionId 값을 반환