나는 이것에 문제가있는 것 같다. 태그 테이블과 외래 키 제약 조건이 작업 테이블에있는 Tag 테이블과 ID가있는 Task 테이블이 있습니다.linq에서 제공된 모든 태그로 태그가 지정된 항목을 검색하려면 어떻게합니까?
태그로 작업을 검색하고 검색 할 수 있기를 원합니다. 예를 들어 "이식성"과 "테스팅"이라는 태그가있는 작업을 검색하는 경우 "이식성"이 아닌 "테스트"태그가 붙은 작업은 원하지 않습니다.
var tasks = (from t in _context.KnowledgeBaseTasks
where t.KnowledgeBaseTaskTags.Any(x => tags.Contains(x.tag))
select KnowledgeBaseTaskViewModel.ConvertFromEntity(t)
).ToList();
이 물론 않는 OR 검색이 아닌 AND 검색 :
나는 다음 구문을 시도했다. 실제로 이것을 AND 검색으로 전환하는 방법을 알 수 없습니다.편집 또한 작업에 포함 된 2 개의 X 태그 중에서 검색 할 수 있어야합니다. 따라서 "bugfix", "portability", "testing"태그가 붙은 "testing"및 "portability"를 검색하면 해당 작업이 계속 표시됩니다.
이 작업은 완벽하게 작동했습니다 (하위 쿼리에 ToList()를 추가하고 주 쿼리에 Select() 호출을 추가해야했지만 그렇지 않으면 작동했습니다. – KallDrexx