2010-02-08 2 views
2

데이터 컬렉션 앞에 WCF 서비스가 있습니다. 클라이언트가 데이터 컬렉션에 대해 실행될 LINQ 쿼리 또는 식 트리를 전달할 수있는 서비스 호출을하고 싶습니다. WCF 서비스 호출에 LINQ 쿼리를 전달하는 합리적인 방법이 있습니까?LINQ 쿼리를 WCF 서비스에 전달하는 방법

감사합니다.

답변

2

현재 수행 할 수있는 옵션은 상당히 제한되어 있습니다. 전체 Linq 질의를 직렬화하는 것은 거의 불가능합니다. 동일한 이유로 임의의 코드를 직렬화하고 다른 곳으로 보내서 실행할 수 없다는 것입니다 (물론 어셈블리를 동적으로 빌드하고 인터페이스를 구현하며 쿼리를 코드화 할 수 있습니다 ...하지만 그 시점에서 당신은 톤을했습니다).

필자는 Linq 데이터 소스를 통해 고도로 맞춤화 된 검색 기능을 제공하기 위해 몇 차례 시스템을 작성했습니다. 기본적으로 어떤 종류의 쿼리를 지원해야하는지 결정할 수 있습니다. 가능한 한 간단하게 유지 한 다음이를 나타내는 데이터 구조를 작성하십시오. 당신이 완전한 보편성을 필요로한다면, 당신은 식목 나무처럼 보이는쪽으로 기울기 시작할 것입니다, 그러나 이것은 종종 당신의 목적을위한 과잉입니다.

그러면 사용자 지정 쿼리 데이터 구조를 사용하고 Linq 쿼리를 만드는 변환기를 작성해야합니다. 적절한 도구 (예 : LinqKit)를 사용하면이 작업을 매우 쉽게 할 수 있습니다. 하지만 이 표현 나무와 그 조작에 대한 전문가가되어야합니다.

+0

좋은 답변, 감사합니다. – Sako73

관련 문제