Nhibernate 冬眠。将HQL转换为标准API

Nhibernate 冬眠。将HQL转换为标准API,nhibernate,hql,criteria,Nhibernate,Hql,Criteria,如何将以下hql转换为标准API var criteria = this.Session.CreateQuery("select m, m.Attachments.size from AdvanceMessage m"); ?? 谢谢你的问题有点含糊,但大致是这样的: IList<AdvanceMessage> list = session.CreateCriteria(typeof(AdvanceMessage)) .List<AdvanceMessage>(

如何将以下hql转换为标准API

var criteria = this.Session.CreateQuery("select m, m.Attachments.size from AdvanceMessage m");
??
谢谢

你的问题有点含糊,但大致是这样的:

IList<AdvanceMessage> list = session.CreateCriteria(typeof(AdvanceMessage))
    .List<AdvanceMessage>();
IList list=session.CreateCriteria(typeof(AdvanceMessage))
.List();

此操作仅返回AdvanceMessages表中的所有字段。但我要求第一个生成一个T-SQL语句,如:SELECT m.*,COUNT(从message附件f中选择f.Id,其中f.messageId=m.messageId)从AdvanceMessages m中,我找到了一个解决方案,即创建AdvanceMessage的criteria类型,并为此类字段添加GroupProperty投影,还可以添加一个附加的子查询投影,其中包含一个行数投影。