Pregunta

Estoy tratando de restringir una unión externa izquierda con una restricción simple, pero falla con una excepción SQL.

System.data.sqlclient.sqlexception: debe declarar la variable escalar "@p1".

Mi icriterio:

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

El SQL deseado:

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

¿Tengo que agregar los valores variables de alguna manera? El SQL generado por NHibernate es correcto, pero la variable simplemente no se envía al servidor.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top