Bonjour à tous,

Petit souci de requête... je souhaite compter le nombre d' oeuvres par projet appartenant à un utilisateur (avec une condition de recherche du type: avoir le nombre d'oeuvre comprise entre 1 et 15)
j'ai donc :
projets (1,1)-----detenir-----(0,n)utilisateurs
oeuvres(1,1)------Appartient-------(1,n)Projets

ma requête sql est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
SELECT
	prof.ProfileId AS ["Profile"]
FROM
	dbo.Profiles AS prof
INNER JOIN
	dbo.Projects AS proj
ON
	prof.ProfileId = proj.ProfileIdFK
INNER JOIN
	dbo.Artworks as artw
ON 
	proj.ProjectId = artw.ProjectIdFK
WHERE 
	prof.ProfileId = 62
GROUP BY 
	prof.ProfileId
HAVING  
	COUNT(artw.ArtworkId) BETWEEN 3 AND 10
Maintanant je veux faire cette requête de type criteria avec nhibernate

J'utilise fluent nhibernate pour le mapping.

J'ai testé cette requête,mais en vain:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
var query = session.CreateCriteria<ArtworkData>();
                    query.Add(Restrictions.Eq("Project", project));
                    query.Add(Restrictions.Between(Projections.Count("Id"), 3, 10));
 
                    return query.List<ArtworkData>();
Quand je met un point d'arrêt, il ne comprend pas le :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Projections.Count("Id")
Voila mon problème.
Merci d'avance

Nicolas

P.S.
J'apporte cette précision.
Réponse de NHibernate:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
{Project = MyProject.Data.ProjectData and  between 7 and 10}