Я надеюсь создавать Левое внешнее объединение запрос Nhibernate с несколькими на операторах, сродни этому:
SELECT
*
FROM [Database].[dbo].[Posts] p
LEFT JOIN
[Database].[dbo].[PostInteractions] i
ON
p.PostId = i.PostID_TargetPost And i.UserID_ActingUser = 202
Я дурачился с critera и псевдонимами, но у меня не было удачи при выяснении, как делают к этому. Какие-либо предложения?
Я действительно разобрался. Вам нужно выполнить проверку на null
.CreateCriteria("Interactions", "i", NHibernate.SqlCommand.JoinType.LeftOuterJoin)
.Add(Expression.Or(Expression.Eq("i.ActingUser", user), Expression.IsNull("i.ActingUser")))
, это создаст левое соединение для идентификатора targetpost, а затем устранит все взаимодействия с пользователем, отличные от null / non.