畅享博客 > 非鱼评影 > 程序设计 > 再看NHibernate的效率问题
2006-4-26 11:54:19

再看NHibernate的效率问题

今天在写一个小东西的时候,要用到在一个表里取出一部分字段的功能,在NHibernate的HQL里面似乎已经预留了这个接口,就是可以定义一个新的类,然后用Select new的方法,从一个表或者几个关联表中取数据,并使用取出来的字段创建这个类的实例,然后返回一个包含这个类的IList。好不容易把这个功能调试通过以后发现,在这个HQL上面没有办法再增加Select Top 10的功能了,结果就是一次返回所有的数据。试了半天,两者不可兼得。

于是采用另一个迂回策略,在数据库里建一个视图,里面包含完整的查询语句,然后给它增加一个实体类和对应的hbm.xml文件,hbm里面的table就指向这个视图,然后就可以像使用表一样的使用它了。不过因为这个浪费一个实体类似乎有些愚蠢,而且,如果需要多种不同样式的查询,也不可能建多个这样的对应类。不过目前还没有想出更好的办法。


推荐到鲜果:

评论

好像,可以通过SetFirstResult
和setMaxResult来限定读取的记录的个数
SetFirstResult(0)
SetMaxResult(10)
Query.List()

发布者 匿名用户
2007-9-14 11:25:53


8y

发布者 匿名用户
2008-1-3 21:14:03


用SetMaxResult(10)就可以了。

aspx@hotmail.com

发布者 匿名用户
2008-7-6 12:17:27


您正在以 匿名用户 的身份发表评论  快速登录
(不得超过 50 个汉字)
       看不清,换一个
提示消息
(输入完内容可以直接按Ctrl+Enter提交)