> 데이터 베이스 > MySQL 튜토리얼 > SQL의 IN 하위 쿼리를 LINQ to SQL로 변환하는 방법은 무엇입니까?

SQL의 IN 하위 쿼리를 LINQ to SQL로 변환하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-28 18:39:14
원래의
456명이 탐색했습니다.

How to Translate SQL's IN Subqueries into LINQ to SQL?

LINQ to SQL을 사용하여 IN 하위 쿼리 처리

LINQ to SQL에서는 IN 하위 쿼리를 처리해야 할 수도 있습니다. SQL의 일반적인 작업입니다. 시나리오를 생각해 보겠습니다.

질문:

다음 SQL 쿼리를 LINQ to SQL로 어떻게 변환할 수 있나요?

SELECT f.*
FROM Foo f
WHERE f.FooId IN (
    SELECT fb.FooId
    FROM FooBar fb
    WHERE fb.BarId = 1000
)
로그인 후 복사

답변:

LINQ에서 이러한 쿼리를 구현하려면 SQL에는

1이라는 두 가지 개념을 사용해야 합니다. 키 모음으로서의 하위 쿼리:

IN 절의 조건을 충족하는 키 모음으로 하위 쿼리를 정의하는 것부터 시작합니다.

var fooBarIds = from fb in context.FooBar
                where fb.BarId == 1000
                select fb.FooId;
로그인 후 복사

2. Contains 메서드를 사용한 쿼리:

다음으로, 키 컬렉션에 Contains 메서드를 사용하여 지정된 FooId가 있는지 확인할 수 있습니다.

var result = from f in context.Foo
             where fooBarIds.Contains(f.FooId)
             select f;
로그인 후 복사

이 쿼리는 모든 키를 반환합니다. 검색된 FooId 컬렉션에 FooId가 존재하는 Foo 테이블의 행 하위 쿼리.

확장 사용 사례:

EXISTS:

// EXISTS
var q = from t1 in table1
        let t2s = from t2 in table2
                  where <Conditions for table2>
                  select t2.KeyField
        where t2s.Any(t1.KeyField)
        select t1;
로그인 후 복사
와 같은 다른 하위 쿼리 작업을 구현하는 데 동일한 원칙을 적용할 수 있습니다.

위 내용은 SQL의 IN 하위 쿼리를 LINQ to SQL로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿