Dans mon projet, Lines
peut être groupé et un Group
a un type qui peut être Crossing
(1) ou Parallel
(2). J'ai besoin de trouver toutes les lignes qui ont au moins un groupe d'un type spécifié (dans ce cas, 1). L'identifiant d'une ligne donnée peut être sur la colonne LineA
ou LineB
d'un groupe. Voici où je suis allé jusqu'à présent:Critères NHibernate pour interroger des objets parents avec au moins un objet enfant?
Criteria crit = session.CreateCriteria(typeof(Line), "ln");
DetachedCriteria count = DetachedCriteria.For<Group>()
.SetProjection(Projections.CountDistinct("Id"))
.Add(Expression.Or(
Expression.EqProperty("LineA", "ln.Id"),
Expression.EqProperty("LineB", "ln.Id")))
.Add(Expression.Eq("GroupTypeId", 1));
crit.Add(Subqueries.Gt(0, count));
Votre requête semble OK. Cherchez-vous un meilleur moyen de le faire ou votre requête ne fonctionne pas comme il se doit? – tolism7
cela ne fonctionne pas. Lève une exception mais je ne me souviens plus du message. Je l'ai eu de travail et posterai la réponse – svallory
Vous devriez prendre le temps de vérifier quelle exception vous receviez et l'afficher avec votre question. – UpTheCreek