2010-06-16 3 views
3

서버에 연결하는 클라이언트 응용 프로그램이 있습니다. 서버는 지속성과 질의를 위해 최대 절전 모드를 사용하므로 지속성을 위해 주석 된 최대 절전 모드 객체 세트를 가지고 있습니다.Linq-> HQL 공급자 만들기

클라이언트는 서버에 HQL 쿼리를 보내고 응답을 다시받습니다. 클라이언트는 조회 결과 및 기본 지속성에 대한 서버 최대 절전 오브젝트와 일치하는 자동 생성 오브젝트 세트를 가지고 있습니다.

Linq를 사용하여 쿼리를 HQL뿐만 아니라 형식화하고 (쿼리를 HQL 문자열 쿼리에 더 이상 입력하지 않아도) 신속하게 만들 수 있도록 지원하고 싶습니다. 나는 다음을 둘러 보았지만 나는 그들이 가지고있는 것들에 어떻게 적응할 수 있는지를 볼 수 없다.

    자 NHibernate의 Linq를 제공
  • - 필요 NHibernate에 ISession과 ISessionFactory를 사용하여 내가
  • LinqExtender이없는 - 너무 침습적 상기 객체에 대한 주석을 많이하고 기본 유형을 확장을 필요로

내가 정말로 원했던 것은 HQL 쿼리를 빌드하기위한 구조를 처리하기 쉽도록 만드는 것입니다. C# 개발자 중 한 명이 작성한 15 페이지짜리 기사의 대부분을 사용자 지정 공급자를 만드는 방법에 대해 읽었습니다. 주로 식 트리의 복잡성 때문에 매우 어려워졌습니다.

누구든지 Linq -> HQL 번역을 구현하는 방법을 제안 할 수 있습니까? 아마도 식 트리를 더 많은 SQL/HQLish로 정리하는 라이브러리 일 것입니다.

/select/from/where/group by/order by/join을 지원하고 싶습니다. 하위 쿼리가 너무 걱정되지 않습니다.

답변

1

그래서이 라이브러리 re-linq은 Hibernate가 LINQ 기능을 구현하는 데 사용하는 라이브러리입니다. 비록 표현의 대상에 대해 많은 잡음을 제거하는 것으로 보입니다.하지만 구현을 만들기 위해 위에 할 일은 공정한 것 같습니다.

re-linq

1

나는 이것을 수행하는 라이브러리가 없다고 생각합니다. 당신은 당신의 자신의 공급자를 쓸 수 있습니다. 그러한 제공자를 작성하는 데 도움이되는 툴킷이 있습니다. 예 : IQToolkit. 그러나 자신의 공급자를 작성하는 일은 여전히 ​​많은 작업이 될 것입니다. 투자 가치가 있는지 확실하지 않습니다.