"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 발현 트리를 사용하여 동적 LINQ 쿼리를 어떻게 구축 할 수 있습니까?

발현 트리를 사용하여 동적 LINQ 쿼리를 어떻게 구축 할 수 있습니까?

2025-03-04에 게시되었습니다
검색:345

How Can I Build Dynamic LINQ Queries Using Expression Trees?
표현 트리가있는 동적 쿼리 생성

도전은 LINQ와 함께 표현 트리를 사용하여 충족 할 수 있습니다. 발현 트리를 구성함으로써 런타임에서도 쿼리를 동적으로 구축 할 수 있습니다.

var param = expression.parameter (typeof (someObject), "p"); var exp = expression.lambda > ( expression.equal ( expression.property (param, "name"), expression.constant ( "밥") ),) 파라 ); var query = someObj.where (exp);

이 예에서 표현식 트리는 'someObject'유형의 매개 변수 'p'로 만들어집니다. 'exp'lambda 표현식은 Where 절을 정의합니다. 'p.name'은 상수 값 'Bob'과 비교됩니다. 마지막으로, 쿼리는 'someobj'컬렉션에 'Where'메소드 'exp'를 적용하여 'sobj'컬렉션에 적용하여 형성됩니다. 변화하는 요구 사항에 대한 적응.

코드 재사용 :
var param = Expression.Parameter(typeof(SomeObject), "p");
var exp = Expression.Lambda>(
    Expression.Equal(
        Expression.Property(param, "Name"),
        Expression.Constant("Bob")
    ),
    param
);
var query = someObj.Where(exp);

Expression Tree는 동적 LINQ 쿼리를 생성하는 강력한 메커니즘을 제공하고 개발자에게 데이터 조작을 더 잘 제어하고보다 유연하고 반응이 좋은 응용 프로그램을 가능하게합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3