2010-11-30 6 views
1

J'ai mappé une classe à une table SQL Server et utiliser une requête SQL nommée pour en extraire certaines lignes. Je ne veux pas non plus que toutes les colonnes de certaines pages (par exemple, s'il s'agit d'un document, je souhaite afficher son contenu complet sur la page "Afficher les détails" uniquement, son titre peut figurer dans une liste et les "Afficher les détails" page.Requêtes nommées Nhibernate SQL et projection

Si je ne sélectionne pas toutes les colonnes du tableau en question, je reçois un IndexOutOfRangeException sur les colonnes que je l'ai laissé de côté.

est-il un moyen de projeter uniquement les colonnes I « m intéressé sur les requêtes nommées ou dois-je créer Poços supplémentaires pour les différents champs de l'application?

Cordialement, F.

+1

Votre définition de table et votre requête de projection vous aideront à répondre à cette question. BTW - Une raison pour laquelle vous utilisez une requête SQL plutôt que HQL, Criteria, LINQ, etc.? Les requêtes SQL sont uniquement destinées aux cas de limites où d'autres mécanismes de requête ne peuvent pas générer un SQL optimal. –

+0

Je dois récupérer les X premières lignes d'une table avec des colonnes telles que DocumentTitle, Text, PublishDate, AddDate, DateDate, Légende, AuditedBy. Sur une page de liste je veux seulement montrer le DocumentTitle et PublishDate. Il a un mappage XML vers une classe C# et tant que je tire toutes les colonnes dans la requête, cela fonctionne très bien. – Michali

+0

Comme je suis nouveau sur NHibernate et qu'il y aura beaucoup de requêtes dans l'application web que nous construisons, je préfère de loin m'en tenir à SQL plutôt que de vérifier les fichiers journaux pour voir quel genre de SQL est généré et comment il fonctionne est. Critères a une bonne API et fournit un moyen OO pour interroger les données et je pourrais finir par l'utiliser. – Michali

Répondre