我花了很長時間檢查所有類型的帖子,沒有做我需要的東西,你的帖子是最接近我正在尋找。
從我的測試(與nHibernate 3)您的查詢是不正確的。其實你的條件看起來更像是在SQL中:
SELECT *
FROM [Posts] p
LEFT JOIN [PostInteractions] i
ON p.PostId = i.PostID_TargetPost
WHERE (i.UserID_ActingUser = 202 OR i.UserID_ActingUser IS NULL)
它返回崗位/相互作用,只有當相互作用的ActingUser是202或不存在相互作用的職位。
經過很多測試,我終於想通了......
試試這個(vb.net):
session.CreateCriteria(Of Posts)("p") _
.CreateCriteria("Interactions", "i", _
NHibernate.SqlCommand.JoinType.LeftOuterJoin, _
Expression.Eq("i.ActingUser", user))
有使用「條款二」給個createCriteria函數的重載。這對我來說是非常有效的,我相信這也正是你想要的。
我知道主題的很老,但如果它可以幫助別人....
此外,有關NHibernate的查詢很好的例子(這對我是一個巨大的幫助):http://ayende.com/blog/4023/nhibernate-queries-examples
玩得開心!