我是NHibernate 3和QueryOver的新手,我正在尝试将此Oracle SQL转换为NHibernate QueryOver表达式:
SELECT *
FROM MYTABLE T1
WHERE T1.ID= 'ID'
AND T1.TYPE= 'TYPE'
AND T1.DATADATE= '20130101'
AND (T1.GENERATIONDATE || T1.GENERATIONHOUR) =
(SELECT MAX (T2.GENERATIONDATE || T2.GENERATIONHOUR)
FROM MYTABLE T2
WHERE T1.ID= T2.ID
AND T1.TYPE= T2.TYPE
AND T1.DATADATE= T2.DATADATE)
所有五列都是表主键的一部分,我想要的是过滤选择连接GENERATIONDATE(以'yyyyMMdd'格式表示的NVARCHAR2(8)日期)和GENERATIONHOUR(NVARCHAR2(2)小时'中的最新行HH'格式)字段。
我有一个静态类作为我的类的QueryOver提供程序,所以对于我正在做的一个简单的查询:
class MyTableQueryOver
{
static QueryOver<MyTable, MyTable> ByIDAndTypeAndDate(string id, string type, string date)
{
return QueryOver.Of<MyTable>()
.Where(x => x.Id == id
&& x.Type == type
&& x.Date == date);
}
}
欢迎任何建议。
提前致谢。