재컴파일 없이 LINQ 쿼리를 동적으로 생성
쿼리 매개 변수가 동적으로 업데이트된 외부 데이터에서 제공되는 시나리오에서는 LINQ 쿼리를 생성해야 할 필요성이 발생합니다. 소스 코드를 다시 컴파일하지 않고. 수많은 속성을 가진 SomeObject와 같은 객체를 생각해 보세요.
데이터베이스에 저장된 XML 구조에서 기준을 추출하여 새로운 LINQ 쿼리를 동적으로 생성하는 것이 가능합니까?
예:
var result = from i in someObj where //XML requests Name = 'Bob'...so append this where clause name = 'Bob'
사용하는 솔루션 표현식 트리
표현 트리를 사용하면 실행 가능한 솔루션:
var param = Expression.Parameter(typeof(SomeObject), "p"); var exp = Expression.Lambda<Func<SomeObject, bool>>( Expression.Equal( Expression.Property(param, "Name"), Expression.Constant("Bob") ), param ); var query = someObj.Where(exp);
이 접근 방식은 훨씬 더 복잡하지만 동적 쿼리 생성이 필요한 특정 시나리오에 솔루션을 제공합니다.
위 내용은 재컴파일 없이 XML 데이터에서 LINQ 쿼리를 동적으로 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!