J'ai une application client qui se connecte à un serveur. Le serveur utilise la mise en veille prolongée pour la persistance et l'interrogation. Il dispose donc d'un ensemble d'objets Hibernate annotés pour la persistance.Création d'un fournisseur Linq-> HQL
Le client envoie des requêtes HQL au serveur et obtient des réponses. Le client possède un ensemble d'objets générés automatiquement qui correspondent aux objets Hibernate du serveur pour les résultats de la requête et la persistance de base.
Je voudrais prendre en charge l'utilisation de Linq pour interroger ainsi que Hql car il rend les requêtes typesafe et plus rapide à construire (plus de fautes de frappe dans les requêtes de chaîne HQL). J'ai regardé autour de moi mais je ne vois pas comment les adapter à ce que j'ai.
- fournisseur Linq NHibernate - nécessite l'utilisation de NHibernate ISession et ISessionFactory, que je n'ai pas
- LinqExtender - nécessite beaucoup d'annotations sur les objets et l'extension d'un type de base, trop invasive
Ce que je veux vraiment, c'est quelque chose qui va me donner une structure facile à traiter pour construire les requêtes HQL. J'ai lu la plupart d'un article de 15 pages écrit par l'un des développeurs C# sur la façon de créer des fournisseurs personnalisés et c'est assez compliqué, principalement en raison de la complexité de l'arbre d'expression. Est-ce que quelqu'un peut suggérer une approche pour implémenter la traduction Linq -> HQL? Peut-être une bibliothèque qui va nettoyer l'arbre d'expression en quelque chose de plus SQL/HQLish.
Je voudrais prendre en charge select/from/where/group by/order par/jointures. Pas trop inquiet à propos des sous-requêtes.