Я пытаюсь ограничить левое внешнее объединение простым ограничением, но оно завершается ошибкой с исключением из sql.
System.Data.SqlClient.SqlException: необходимо объявить скалярную переменную "@ p1".
Мои критерии:
var r = session.CreateCriteria<Parent>("p")
.CreateCriteria("p.Children", "c", NHibernate.SqlCommand.JoinType.LeftOuterJoin, Restrictions.Eq("c.Name", "John Doe"))
.List();
Требуемый SQL:
SELECT * FROM Parents p
LEFT OUTER JOIN Children c ON c.ParentID = p.ID AND c.Name = 'John Doe'
Нужно ли каким-либо образом добавлять значения переменных? SQL, сгенерированный NHibernate, правильный, но переменная просто не отправляется на сервер.