>데이터 베이스 >MySQL 튜토리얼 >LINQ를 사용하여 SQL의 'IN' 문을 복제하는 방법은 무엇입니까?

LINQ를 사용하여 SQL의 'IN' 문을 복제하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-30 21:32:11878검색

How to Replicate SQL's

SQL의 "IN" 문에 해당하는 LINQ

이 문서에서는 다음을 에뮬레이트하는 LINQ 쿼리를 작성하는 작업을 다루겠습니다. SQL "IN" 문의 동작. 이 쿼리는 지정된 태그 목록과 일치하는 항목을 검색합니다.

항목을 지원하는 다음 데이터베이스 스키마를 상상해 보세요. 태그 지정:

항목

  • 항목 ID
  • 브랜드
  • 이름
  • 가격
  • 상태
  • 설명
  • 활성

태그 s

  • TagId
  • 이름
  • 활성

TagMap

  • TagMapId
  • TagId
  • ItemId
  • 활성

문제 설명:
지정된 태그 목록과 일치하는 항목을 반환하는 LINQ 쿼리를 작성합니다. 예를 들어, 원하는 태그가 2, 3, 4, 7인 경우 쿼리는 해당 태그가 있는 항목을 검색해야 합니다.

해결책:
다음을 사용하여 이를 달성할 수 있습니다. LINQ 쿼리:

var TagIds = new[] { 2, 3, 4, 7 };
var q = from map in Context.TagMaps
where TagIds.Contains(map.TagId)
select map.Items;

쿼리는 먼저 원하는 태그 ID로 정수 배열 TagId를 초기화합니다. 그런 다음 TagMaps의 TagId 열이 TagIds 배열에 있는지 확인하는 Contains 메서드를 사용하여 이 배열과 TagMaps 테이블을 조인합니다.

이 쿼리는 SQL 문에 매개변수화된 "IN" 절을 생성하여 효율성을 보장합니다. 실행. 기본적으로 다음 SQL로 변환됩니다.

SELECT Items
FROM TagMaps
WHERE TagId IN (2, 3, 4, 7);

위 내용은 LINQ를 사용하여 SQL의 'IN' 문을 복제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.