Question

J'essaie de restreindre une jointure extérieure gauche avec une restriction simple, mais elle échoue avec une exception SQL.

System.Data.SqlClient.Sqlexception: doit déclarer la variable scalaire "@ p1".

Mes iditeria:

 var r = session.CreateCriteria<Parent>("p")
.CreateCriteria("p.Children", "c", NHibernate.SqlCommand.JoinType.LeftOuterJoin, Restrictions.Eq("c.Name", "John Doe"))
.List();

Le SQL souhaité:

SELECT * FROM Parents p
LEFT OUTER JOIN Children c ON c.ParentID = p.ID AND c.Name = 'John Doe' 

Dois-je ajouter les valeurs variables de quelque manière que ce soit? Le SQL généré par NHibernate est correct mais la variable n'est tout simplement pas envoyée au serveur.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top