2011-10-07 1 views
0

나는 쉽게 대답을 찾을 수있을 것이라고 생각했지만 지금까지는 그렇지 않다. 관련 테이블 - 블로그 및 태그가 있습니다. 태그 스키마는 다음과 같습니다.특정 문자열에 대해 관련 (1 : m) 레코드를 검색하는 LINQ 쿼리는 무엇입니까?

TagTableID (identity column) 
BlogID (foreign key) 
Tag (string) 

테이블은 SQL Server와 관련이 있습니다. 각 블로그 항목은 여러 개의 태그를 가질 수 있으며 블로그 항목의 각 태그는 태그 테이블에 새 항목을 생성합니다. 특정 태그가있는 블로그 항목을 검색하고 싶습니다. 나는 Linq에이 작업을 수행 할 수 있습니다

var blogQuery = 
      from blogentry in blog.blogs 
      where blogentry.Tags = [??] 
      select blogentry; 

이 블로그 항목에 여러 태그, LINQ에에서 사용할 수 blogentry.Tags있어하고 EntitySet을 반환한다. 하지만 특정 문자열을 찾기 위해 검색 결과 컬렉션을 검색하는 방법을 모르겠습니다. 난 당신이 사용하고있는 가정

답변

3

...이 더 복잡한 쿼리를 필요로 의심

(비트는이. 위의 예에서 [?]라고 곳),하지만 난 시작했습니다 곳이다 Linq 2 SQL 또는 Linq 2 엔티티?

나는 이것을 테스트하지 못했지만, 나는이 같은 일을해야 믿습니다

var tagsToLookFor = new[] {"tag1", "tag2"}; 

var blogQuery = 
     from blogentry in blog.blogs 
     where blogentry.Tags.Any(t => tagsToLookFor.Contains(t.Tag)) 
     select blogentry; 

그래도 SQL 프로파일 러와 결과 SQL을 확인 마십시오.

+0

감사합니다. 이것은 완벽하게 작동하는 것 같습니다. – mike

관련 문제