Nhibernate 复合查询器
嗨,我必须把下面的sql翻译成QueryOver 有可能吗?我的实际问题可能更复杂。但我一直停留在这个阶段Nhibernate 复合查询器,nhibernate,queryover,Nhibernate,Queryover,嗨,我必须把下面的sql翻译成QueryOver 有可能吗?我的实际问题可能更复杂。但我一直停留在这个阶段 SELECT InnerQuery.USERID, InnerQuery.TRAFFICZONEID, InnerQuery.StatusCategory, COUNT(*) AS LineCount FROM ( SELECT MissionID, UserId, TRAFFICZONEID, CASE WHEN status BETWEEN 1
SELECT InnerQuery.USERID,
InnerQuery.TRAFFICZONEID,
InnerQuery.StatusCategory,
COUNT(*) AS LineCount
FROM (
SELECT MissionID,
UserId,
TRAFFICZONEID,
CASE
WHEN status BETWEEN 1
AND 5
THEN 1
WHEN status BETWEEN 6
AND 8
THEN 2
WHEN status BETWEEN 9
AND 17
THEN 3
ELSE 0
END AS [StatusCategory]
FROM mission
) AS InnerQuery
LEFT OUTER JOIN trafficzone t ON InnerQuery.TRAFFICZONEID = t.Trafficzoneid
GROUP BY InnerQuery.USERID,
InnerQuery.TRAFFICZONEID,
InnerQuery.StatusCategory
有没有可能在QueryOver做这种嘲弄?或者,使用NHibernate的最佳方式是什么
谢谢,
对于复杂的查询,您可以在数据库中创建一个视图,并从NHibernate使用它 对于复杂的查询,您可以在数据库中创建一个视图,并从NHibernate使用它 我建议您为此使用HQL 在NHibernate支持的所有查询方法中,它是最适合自由形式查询的方法
它唯一不直接支持的是子查询的外部联接。您可以对A、子查询B(其中A.X=B.X)中的子查询使用隐式联接,并对子查询中没有匹配元素的项使用并集来模拟该情况。我建议您对此使用HQL 在NHibernate支持的所有查询方法中,它是最适合自由形式查询的方法 它唯一不直接支持的是子查询的外部联接。您可以使用隐式连接来模拟,子查询A、子查询B(其中A.X=B.X)中的子查询以及子查询中没有匹配元素的项的并集