> 백엔드 개발 > C++ > LINQ 람다 표현식을 사용하여 여러 테이블 조인을 수행하는 방법은 무엇입니까?

LINQ 람다 표현식을 사용하여 여러 테이블 조인을 수행하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-10 10:13:41
원래의
558명이 탐색했습니다.

How to Perform Multiple Table Joins Using LINQ Lambda Expressions?

LINQ Lambda 표현식을 사용하여 다중 테이블 조인 수행

LINQ에서는 람다 식을 사용하여 여러 테이블을 조인할 수 있습니다. 세 가지 클래스가 있다고 가정해 보겠습니다.

<code>Product { Id, ProdName, ProdQty }
Category { Id, CatName }
ProductCategory { ProdId, CatId }</code>
로그인 후 복사

람다 표현식을 사용한 연결

이러한 테이블은 다음 코드를 사용하여 조인할 수 있습니다.

<code>var query = product.Join(
    productcategory,
    p => p.Id,
    pc => pc.ProdID,
    (p, pc) => new { product = p, productcategory = pc }
).Join(
    category,
    ppc => ppc.productcategory.CatId,
    c => c.Id,
    (ppc, c) => new { productproductcategory = ppc, category = c }
);</code>
로그인 후 복사

이렇게 하면 다음 클래스의 개체가 생성됩니다.

<code>QueryClass { productproductcategory, category }</code>
로그인 후 복사

새 개체 채우기

연결 결과 속성으로 새 개체를 채우려면 다음 Select 메서드를 사용할 수 있습니다.

<code>var categorizedProducts = query.Select(m => new {
    ProdId = ???, 
    CatId = ???, 
    // 其他赋值
});</code>
로그인 후 복사

속성 값 가져오기

할당할 특정 속성은 다음과 같이 연결된 개체에서 얻을 수 있습니다.

<code>ProdId = m.ppc.p.Id, // 或 m.ppc.pc.ProdId
CatId = m.c.CatId
// 其他赋值</code>
로그인 후 복사

쿼리 구문 대안

또는 보다 간결한 접근 방식을 제공하는 쿼리 구문을 사용할 수 있습니다.

<code>var categorizedProducts = from p in product
                       join pc in productcategory on p.Id equals pc.ProdId
                       join c in category on pc.CatId equals c.Id
                       select new {
                           ProdId = p.Id, // 或 pc.ProdId
                           CatId = c.CatId
                           // 其他赋值
                       };</code>
로그인 후 복사

이 쿼리의 결과는 람다 표현식 방법과 동일합니다. 가독성이 더 중요하다면 쿼리 구문을 사용하는 것이 좋습니다.

위 내용은 LINQ 람다 표현식을 사용하여 여러 테이블 조인을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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