Avant de poser cette question, j'ai parcouru un certain temps sur Google, mais je n'ai trouvé aucune information pertinente à ce sujet.NHibernate appelant SELECT DISTINCT ON de PostgresSQL()
Mon problème est simple:
Je critères NHibernate et projection et je suis en train de mettre DISTINCT ON (colonne)
Mon code pour la projection suit:
criteria.SetProjection(
Projections.ProjectionList()
.Add(Projections.Distinct(Projections.Property("ID")))
.Add(Projections.Property("A"))
.Add(Projections.Property("B"))
);
Cette génère SQL suivant (bit simplifié):
SELECT DISTINCT ID, A, B FROM ABC ORDER BY A
rformance si cette requête est très très mauvaise.
J'ai optimisé mon SQL qui tourne beaucoup plus vite et ressemble à ceci:
SELECT DISTINCT ON (A) ID, A, B FROM ABC ORDER BY A
Y at-il de toute façon je peux faire NHibernate générer du SQL que je viens de le montrer? Ce problème peut-il être résolu avec les dialectes de NHibernate?
Dans l'attente de vos commentaires! Merci beaucoup!