문제

LINQ 동적 쿼리 인 LINQKIT 및 LINQ 동적 쿼리 라이브러리를 사용하는 몇 가지 방법을 시도했습니다. 컴파일 시간에 쿼리를 확인할 수 있도록 LINQ 아이디어를 죽이기 때문에 두 번째는 마음에 들지 않습니다. 그리고 LinqKit과 함께 나는 시나리오에 대한 좋은 예를 찾지 못했습니다. 또한 나는 반사를 사용하는 과도한 것을 좋아하지 않습니다.

내 시나리오는 다음과 같습니다. 비즈니스 로직과 DAL 논리를 수행하는 웹 서비스가 있습니다. WebForms 응용 프로그램이 분리되어 있습니다. 사용자가 필터링하려는 각 필드마다 진드기 상자가있는 페이지와 각 필터 값을 입력하는 텍스트 상자도 있습니다. 내 웹 서비스에는 목록을 전달하는 방법이 있습니다. QueryObject는 문자열이있는 클래스입니다 : filedName, Object : FieldValue.

그런 다음 내 웹 서비스는 쿼리 객체 목록을 수신하고 이제 큰 질문이 있습니다. 필드 수와 필터 값이 다를 수있는 경우 LINQ 쿼리로 변환하는 방법은 무엇입니까?

더 나쁜 것은 LINQ2SQL을 사용하지 않지만 필요한 경우 iQuery를 반환 할 수있는 리포지토리와 함께 사용자 정의 DAL을 사용합니다 (이와 같이 :http://msdn.microsoft.com/en-us/magazine/dd569757.aspx저장소로 스크롤).

나는 linq2sql : var pageddata = query.skip ((ipagenum -1) * ipagesize) .take (ipagesize);

그렇다면 Dataprovider 특정 방식으로 해당 쿼리를 실행하기 위해 LINQ에서 기본 DAL 구현으로 동적 쿼리 매개 변수 (및 iPagenum 및 iPagesize)를 어떻게 얻을 수 있습니까? 어쩌면 나는 DAL을 LINQ 데이터 제공 업체로 구현해야 할 것입니다 (어떻게 해야할지 모르겠습니다)?

문제는 -Linq2SQL에 의존하고 싶지 않다는 것입니다 (그런 다음 리포지토리를 LINQ2SQL의 래퍼로 구현할 수 있음). 동시에 DAL 외부의 모든 곳에서 LINQ 쿼리 능력을 갖고 싶습니다. 가능합니까?

도움이 되었습니까?

해결책

확실히 가능합니다. 당신이 찾고있는 것은 자신만의 iqueryable, "Custom LINQ 제공 업체"를 만드는 것입니다.

MSDN 기사는 다음과 같습니다. http://msdn.microsoft.com/en-us/library/bb546158.aspx그리고 Matt Warren은 그것에 대한 블로그 시리즈를 얻었습니다. http://blogs.msdn.com/mattwar/archive/2007/07/30/linq-building-an-iqueryable-part-part-i.aspx

나는 그것이 얼마나 힘든지, 그것이 당신에게 가치가 있는지 확인하기 위해 시작하는 것이 좋습니다!

당신이 그것에 반대하는 경우,이 블로그 게시물을 읽으십시오. http://www.hanselman.com/blog/realworldappsindaysnotweeks.aspxado.net data services (astoria)가 당신에게 어떤 용도로 사용되는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top