您的位置:首页 > 编程语言 > ASP

Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之多表关联查询(附源码)

2009-12-25 19:51 633 查看
  NHibernate的多表关联查询做的还是很不错的,除了比较BT的报表查询,一般业务所需的多表查询基本都能满足,且效率也还算不错,NHibernate多表查询在数据库访问层上其实比较简单。反而难点在于如何把查询出来的多层对象不转换成DTO,直接传输到UI进行绑定,下篇讲展现层的时候会详细描述(注:关于DTO的使用和利弊这里不多加讨论,在本系统中的设计原则是尽量避免使用DTO)。

依然还是接之前字典维护的例子,我们需要在字典项目的表格里显示一列“类别”即字典项目所属字典类别的名称,这个字段在字典项的表是不存在的,需要关联查询字典类别表才能得出。如下图(由于存在项目客户实际数据,所以我图改了一些...):

代码

var query = Session.CreateQuery(@"select g from GroupedServiceItem g
left join fetch g.Item i
left join fetch i.ItemCategory
left join fetch i.MedicalCategory
left join fetch i.FeesCategory
where g.ParentItem.Id=:Id")
.SetString("Id", id);


以上代码是我在项目中随便摘取的,大概意思理解就可以了...

如上所述我们实现了NHibernate的多表查询,但是我们查询出的对象是包含嵌套的呀,如何把这样的结构送到UI及Ext进行数据绑定呢?请看下篇...

源码(上篇的源码也在这里,搞好数据库,整点测试数据,就能像我上面描述的一样运行测试):HISDemo-5.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐