从 nhibernate hql 返回不在映射文件中的对象
Posted
技术标签:
【中文标题】从 nhibernate hql 返回不在映射文件中的对象【英文标题】:return objects that are not in the mapping file from nhibernate hql 【发布时间】:2010-11-02 09:32:32 【问题描述】:标题几乎说明了我正在尝试做的事情。我有选择案例的休眠 hql
select application.SubmissionDate, count(candidates)
from Application as application group by application.SubmissionDate
我想将此查询的返回值放入一个名为“CountPerDay”对象的对象(不在 nhibernate 映射文件中)
class CountPerDay
public DateTime Date,
public int Count
nHibernate 是否有某种内置功能/方法来执行此操作?
【问题讨论】:
【参考方案1】:您应该查看Ad-hoc mapping 的 NHibernate:
string hql = @"select application.SubmissionDate as Date, count(candidates) as Count
from Application as application
group by application.SubmissionDate";
var count = session.CreateQuery(hql)
.SetResultTransformer(Transformers.AliasToBean(typeof(CountPerDay)))
.List<CountPerDay>();
【讨论】:
谢谢!更新了代码并将 CountPerDay.Count 更改为 long 并且它可以工作。 可能值得一提的是transformation only works if you query using a native SQL query(不是HQL)。在@rebelliard 的回答中,他打电话给session.CreateQuery(hql)
。这仍然会抱怨该表未映射。不过调用session.CreateSqlQuery(...)
应该可以。以上是关于从 nhibernate hql 返回不在映射文件中的对象的主要内容,如果未能解决你的问题,请参考以下文章