NHibernate 左外连接

标签 nhibernate criteria left-join

我希望创建一个左外连接 Nhibernate 查询,其中包含多个类似于此的语句:

SELECT 
    * 
FROM [Database].[dbo].[Posts] p
LEFT JOIN 
    [Database].[dbo].[PostInteractions] i
ON 
   p.PostId = i.PostID_TargetPost And i.UserID_ActingUser = 202       

我一直在玩弄标准和别名,但我没有运气弄清楚如何做到这一点。有什么建议?

最佳答案

我其实想通了。您需要检查 null

.CreateCriteria("Interactions", "i", NHibernate.SqlCommand.JoinType.LeftOuterJoin)
            .Add(Expression.Or(Expression.Eq("i.ActingUser", user), Expression.IsNull("i.ActingUser")))

这会在 targetpost id 上创建一个左连接,然后消除所有非空/非用户交互。

关于NHibernate 左外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2756148/

相关文章:

Windows 服务上的 C# & NHibernate "Could not compile the mapping document"

nhibernate - 有没有办法在不连接到数据库的情况下使用 NHibernate?

Hibernate条件查询

mySQL 查询优化 LEFT JOIN

php - MySQL:从查询中获取 "array"或 "object"

c# - 将 NHibernate 与 MySql 集成

asp.net - NHibernate + ASP.NET + 在 View 中打开 session + L2Cache

java - 如何为以下查询创建 jpa 规范或条件查询的谓词

java - 连接返回许多部分重复项的高效 Hibernate 标准

sql - TSQL Left Join with multiple right hand rows