正如标题所说。
(对我而言,SelectList
似乎是一种不使用Projections
方法创建投影的方法。)
答案 0 :(得分:4)
我想说完整的解释在文档中:
QueryOver允许添加任意IProjection(允许私有) 要投射的属性)。 Projections工厂类也有 允许使用Lambda表达式的重载:
IList selection = session.QueryOver<Cat>() .Select(Projections.ProjectionList() .Add(Projections.Property<Cat>(c => c.Name)) .Add(Projections.Avg<Cat>(c => c.Age))) .List<object[]>();
此外,还有一个用于创建投影列表的内联语法 这不需要明确的类限定:
IList selection = session.QueryOver<Cat>() .SelectList(list => list .Select(c => c.Name) .SelectAvg(c => c.Age)) .List<object[]>();