使用标准在NHibernate中交叉应用

时间:2014-05-15 10:00:39

标签: c# sql nhibernate

我想选择一位有薪酬信息的员工。

在数据库中,员工表与薪酬信息有一对多的关系,因此我必须选择序列最高的员工。

这个SQL工作正常,但我想在NHibernate中这样做:

 SELECT ID,
    EmployeeId,
    EmployeeCode,
    PayI.IsHourly,
    PayI.Sequence
    FROM Employee as E
    CROSS APPLY 
         (select  top 1 PayI.IsHourly,PayI.Sequence 
                 from PayInformation as PayI 
                 Where PayI.EmployeeId=E.EmployeeId 
                 order by PayI.Sequence desc 
          ) AS PayI

    Where E.EmployeeId=@EmployeeId

我知道我可以使用标准,因为我用它来过滤EmployeeId的记录,但我不知道如何在NHibernate中使用Cross Apply。

NHibernate.ICriteria criteria = BmDaoSession.SessionFactory.OpenSession()
           .CreateCriteria(typeof(Employee));

criteria.Add(Expression.Eq("EmployeeId", employeeId));
return criteria.List<Employee>()[0];

0 个答案:

没有答案