2010-12-09 34 views
1

J'utilise FluentNHibernate et je viens de passer à NHibernate 3.0. J'ai également changé mon schéma de base de données en une configuration de table par sous-classe que j'aime vraiment. Nous avons utilisé la recherche en texte intégral avant d'utiliser la recherche en texte intégral MS SQL 2005 qui a bien fonctionné car tout notre contenu était d'une classe et d'une table. Maintenant que nos données sont réparties entre différentes sous-classes/tables avec différents champs à indexer sur chaque classe, nous voulons typiquement une recherche contre toutes les sous-classes. Quel est le meilleur moyen d'y parvenir et comment l'interroger?NHibernate 3 recherche plein texte avec configuration de table par sous-classe

Nous avons utilisé Linq plus récemment, mais je serais OK avec HQL.

+0

Cette question est difficile à comprendre. Ai-je besoin d'exemples de code qui démontrent ce que je souhaite pouvoir faire? – CountCet

+0

Je suis un junior donc je doute que je pourrais aider mais je serais intéressé à voir un bon exemple de votre cartographie, je n'ai pas rencontré ce modèle de configuration de table par sous-classe dont vous parlez avant. – 4imble

Répondre

0

J'ai finalement résolu ce problème en enchaînant par des requêtes HQL comme celui-ci ...

string selectCat = @"from Cat c where freetext((c.Name),:keyword)"; 
string selectDog = @"from Dog d where freetext((d.Name,d.OwnerName),:keyword)"; 

var animals = session.CreateQuery(selectCat).SetString("keyword", keyword).List<BaseAnimal>().Concat<BaseAnimal>(session.CreateQuery(selectDog).SetString("keyword", keyword).List<BaseAnimal>()).ToList<BaseAnimal();