我查看了类似的问题但主要是遇到where
子句子查询。我想要实现的是出于性能原因首先执行某些连接和排序,然后再与其他表进行内连接。但是我试过了,所有的连接都是在平坦的层次结构中出现的,没有子查询。
我的查询结构如下:
SELECT * FROM (
SELECT T1.*
FROM T1
LEFT OUTER JOIN T2 on ...
LEFT OUTER JOIN T3 on ...
ORDER BY
t.Date desc
) t1 INNER JOIN T4 ON ...
INNER JOIN T5 ON ...
在没有子查询的情况下连接所有这些表的代码如下:
Session.QueryOver(() => t1)
.JoinAlias(x => x.Col2, () => t2, JoinType.LeftOuter)
.JoinAlias(x => x.Col3, () => t3, JoinType.LeftOuter)
.JoinAlias(x => x.Col3, () => t3, JoinType.InnerJoin)
...
问题:如何使用QueryOver表达此查询?我找不到用JoinAlias做的方法..