2006-4-26 11:54:19
再看NHibernate的效率问题
今天在写一个小东西的时候,要用到在一个表里取出一部分字段的功能,在NHibernate的HQL里面似乎已经预留了这个接口,就是可以定义一个新的类,然后用Select new的方法,从一个表或者几个关联表中取数据,并使用取出来的字段创建这个类的实例,然后返回一个包含这个类的IList。好不容易把这个功能调试通过以后发现,在这个HQL上面没有办法再增加Select Top 10的功能了,结果就是一次返回所有的数据。试了半天,两者不可兼得。
于是采用另一个迂回策略,在数据库里建一个视图,里面包含完整的查询语句,然后给它增加一个实体类和对应的hbm.xml文件,hbm里面的table就指向这个视图,然后就可以像使用表一样的使用它了。不过因为这个浪费一个实体类似乎有些愚蠢,而且,如果需要多种不同样式的查询,也不可能建多个这样的对应类。不过目前还没有想出更好的办法。
0
推荐到鲜果:


评论
和setMaxResult来限定读取的记录的个数
SetFirstResult(0)
SetMaxResult(10)
Query.List()
发布者 匿名用户
2007-9-14 11:25:53
发布者 匿名用户
2008-1-3 21:14:03
aspx@hotmail.com
发布者 匿名用户
2008-7-6 12:17:27