Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之多表关联查询(附源码)
2009-12-25 19:51
633 查看
NHibernate的多表关联查询做的还是很不错的,除了比较BT的报表查询,一般业务所需的多表查询基本都能满足,且效率也还算不错,NHibernate多表查询在数据库访问层上其实比较简单。反而难点在于如何把查询出来的多层对象不转换成DTO,直接传输到UI进行绑定,下篇讲展现层的时候会详细描述(注:关于DTO的使用和利弊这里不多加讨论,在本系统中的设计原则是尽量避免使用DTO)。
依然还是接之前字典维护的例子,我们需要在字典项目的表格里显示一列“类别”即字典项目所属字典类别的名称,这个字段在字典项的表是不存在的,需要关联查询字典类别表才能得出。如下图(由于存在项目客户实际数据,所以我图改了一些...):
代码
以上代码是我在项目中随便摘取的,大概意思理解就可以了...
如上所述我们实现了NHibernate的多表查询,但是我们查询出的对象是包含嵌套的呀,如何把这样的结构送到UI及Ext进行数据绑定呢?请看下篇...
源码(上篇的源码也在这里,搞好数据库,整点测试数据,就能像我上面描述的一样运行测试):HISDemo-5.rar
依然还是接之前字典维护的例子,我们需要在字典项目的表格里显示一列“类别”即字典项目所属字典类别的名称,这个字段在字典项的表是不存在的,需要关联查询字典类别表才能得出。如下图(由于存在项目客户实际数据,所以我图改了一些...):
代码
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
相关文章推荐
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之多表关联查询(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之NHibernate的Session管理与初始化(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之分页与排序(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之NHibernate的Session管理与初始化(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之多条件组合查询(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之多条件组合查询(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之实现基本的数据库访问(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之实现基本的数据库访问(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象之分页与排序(附源码)
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象
- Asp.Net大型项目实践(4)-用NHibernate保存和查询我们的业务领域对象
- Asp.Net大型项目实践(3)-业务领域对象建模
- Asp.Net大型项目实践(5)-独家资料!整合NHibernate与Json序列化(附源码)
- Asp.Net大型项目实践(5)-独家资料!整合NHibernate与Json序列化(附源码)
- Asp.Net大型项目实践(9)-ExtJs实现系统框架页(非iframe,附源码,在线demo)
- Asp.Net大型项目实践(6)-用Unity实现层与层之间的接口调用(附源码)
- Asp.Net大型项目实践(10)-基于MVC Action粒度的权限管理(在线demo,全部源码)
- Asp.Net大型项目实践(7)-用Unity实现AOP之事务处理+为啥要用AOP(附源码)
- Asp.Net大型项目实践(5)-用Unity实现层与层之间的接口调用(附源码)
- Asp.Net大型项目实践系列第二季(二)Windows桌面的ExtJs4实现(含源码) [转]