C# 带有concat和max的NHibernate查询覆盖子查询

C# 带有concat和max的NHibernate查询覆盖子查询,c#,nhibernate,queryover,C#,Nhibernate,Queryover,我是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

我是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)date)和GENERATIONHOUR(格式为'HH'的NVARCHAR2(2)hour)字段的最新行

我有一个静态类作为我的类的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);
    }
}
类MyTableQueryOver
{
静态查询超过ByIDAndTypeAndDate(字符串id、字符串类型、字符串日期)
{
返回()的查询版本
.其中(x=>x.Id==Id
&&x.类型==类型
&&x.日期==日期);
}
}
欢迎任何建议

提前谢谢