string query = "select a.CustomerName as CustomerName, b.ProductName as ProductName from Customer as a join a.Product as b" IQuery query = applicationSession.CreateQuery(query); var listResult = query.SetResultTransformer(NHibernate.Transform.Tr…
写在前面:因为项目使用ssh.net所以做着做着要调用存储过程,而且是有返回值的,按照以前的做法直接在参数里指定下就可以获取,但是在nhibernate里调用就有点陌生了,百度一下得出的结果有两种:第一种是用的配置反正就是各种配置,最后能实现.第二种跟以前比较接近但是不是完全符合,然后针对现有情况就改了一下现在代码如下 #region ExecuteStoredProcForQuery public void ExcuteStoreProcForReturn(String spName, ILi…
摘要 NHibernate在很早的版本就提供了SQL Query(原生SQL查询),对于很复杂的查询,如果使用其他的查询方式实现比较困难的时候,一般使用SQL Query.使用SQL Query是基于原生的SQL语句,查询后将结果做投影到NHibernate实体类对象的过程.也可以投影到其他任何.net集合类. 本篇文章的代码可以到NHibernate查询下载 1.from子句 public IList<Customer> GetAllSQL() { return Session.Create…
NHibernate之映射文件配置说明 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表名会加上所指定的schema的名字扩展为全限定名.假若没有指定,表名就不会使用全限定名.default-cascade 指定了未明确注明cascade属性的.Net属性和集合类.Net会采取什么样的默认级联风格. auto-import属性默认让我们在查询语言中可以使用非全限定名的类名.assemb…
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) 引言 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的.这个映射文档被设计为易读的,并且拒绝恶意手工修改.映射语言以.NET为中心的,意味着映射是持久化类的定义来创建的,而非表的定义. 请注意,虽然很多Hibernate用户选择手工定义XML映射文档,也有一些工具来生成映射文档,包括XDo…
目录 写在前面 文档与系列文章 一对多查询 总结 写在前面 上篇文章介绍了nhibernate的一对多关系如何配置,以及级联删除,级联添加数据的内容.这篇文章我们将学习nhibernate中的一对多关系的关联查询.前面文章中也介绍的nhibernate的查询:HQL,条件查询,原生SQL查询. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernat…
1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表名会加上所指定的schema的名字扩展为全限定名.假若没有指定,表名就不会使用全限定名.default-cascade 指定了未明确注明cascade属性的.Net属性和集合类.Net会采取什么样的默认级联风格. auto-import属性默认让我们在查询语言中可以使用非全限定名的类名.assembly和 namespace指定了持久化类…
第1章 NHibernate体系结构 总览 对NHibernate体系结构的非常高层的概览: 这幅图展示了NHibernate使用数据库和配置文件数据来为应用程序提供持久化服务(和持久化的对象). 我们试图显示更多NHibernate运行时体系结构的细节. 但挺不幸的,NHibernate是比较灵活的并且提供了好几种不同的运行方式.我们展示一下两种极端情况.轻型体系中,应用程序自己提供ADO.NET连接,并且自行管理事务.这种方式使用了NHibernate API的一个最小子集. 全面解决体系中…
Criteria API关联查询 如果说HQL查询还有需要了解点SQL语法知识,并不是完全彻底面向对象查询, 那么Criterial API就是完全面向对象的查询方式. public IList<Customer> UseCriteriaAPI_GetCustomersWithOrders(DateTime orderDate) { return _session.CreateCriteria(typeof(Customer)) .Add(Restrictions.Eq("First…
本节内容 关联查询引入 一对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NHibernate查询语言(HQL,NHibernate Query Language).条件查询(Criteria API,Query By Example(QBE)是Criteria API的一种特殊情况).原生SQL(Literal SQL,T-SQL.PL/SQL).这一节分别使用这三种方式来…