有没有人知道使用nHibernate 3 QueryOver语法从子句中执行复合的方法 - 对Linq来说是可能的。我知道它可能与Linq To nHibernate,但我仍然试图绕过查询apis。
以下是从msq for Linq到对象的示例:
var scoreQuery = from student in students
from score in student.Scores
where score > 90
select new { Last = student.LastName, score };
取自MSDN
答案 0 :(得分:3)
您可以使用QueryOver API加入,但我认为您需要使用Linq to Objects将结果展平为匿名类型。
这样的事情:
session.QueryOver<Student> ()
.JoinQueryOver (s => s.Scores).Where (s => s > 90)
.Select (s => s.LastName, s => s.Scores)
.List ()
.SelectMany (s => s.Scores, (student, score) => new { Last = student.LastName, Score = score });