我試圖用一個簡單的限制來限制一個左外連接,但是它失敗了一個sql異常。爲什麼ICriteria沒有將變量值傳遞給withClause?
System.Data.SqlClient.SqlException:必須聲明標量變量「@ p1」。
我的ICriteria:
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'
我一定要以任何方式添加變量值?由NHibernate生成的SQL是正確的,但變量只是不發送到服務器。
我得到這個太:必須聲明變量「@ P19」 –