小编bda*_*el7的帖子

使用连接表的别名创建SqlProjection

我有这种情况:

public class AnswerSet {
public virtual IList<Answer> Answers {set; get;}
}

session.CreateCriteria<AnswerSet>()
        .CreateAlias( "Answers", "a" )
        .SetProjection( Projections.ProjectionList()
          .Add( Projections.GroupProperty( "TopicId" ), "TopicId" )
          .Add( Projections.GroupProperty( "TopicName" ), "TopicName" )
          .Add( Projections.SqlProjection( "count (case **{a}**.numerical_answer
when 1 then 1 when -1 then 1 else null end) as YesAnswers",
         new[] { "YesAnswers" }, new IType[] { NHibernateUtil.Int32 } ), "YesAnswers" )
Run Code Online (Sandbox Code Playgroud)

如何指定子集合别名? {a} .numerical_answer无效,{alias}指的是AnswerSet.

SQL等价物是

select
      [as].topic_id as TopicId
      , [as].topic_name as TopicName
      , count (case [a].numerical_answer …
Run Code Online (Sandbox Code Playgroud)

nhibernate criteria

7
推荐指数
1
解决办法
4614
查看次数

标签 统计

criteria ×1

nhibernate ×1