【NHibernate】HQL入门

在NHibernate 中 HQL 可以帮我们转成最终依赖数据库的查询脚本;

语法也甚是强大,适配主流数据库, HQL不支持union,要想取多个表数据可以做两次单独查询。

 IQuery query =
                NHibernateHelper.OpenSession()
                    .CreateQuery(
                        @"select p from Product as p,Product as pp where p.Name=pp.Name");

            IList result = query.List();
            IEnumerator enu = result.GetEnumerator();
            while (enu.MoveNext())
            {
                object[] obj = (object[])enu.Current;
            }

HQL

select p from Product as p,Product as pp where p.Name=pp.Name

MSSQL

NHibernate: select product0_.Id as Id0_, product0_.Name as Name0_, product0_.Category as Category0_, product0_.Discontinued as Disconti4_0_ from Product product0_, Product product1_ where product0_.Name=product1_.Name
时间: 2024-08-01 07:46:49

【NHibernate】HQL入门的相关文章

NHibernate从入门到精通系列

http://www.cnblogs.com/GoodHelper/archive/2011/02/17/1948744.html NHibernate从入门到精通系列(4)——持久对象的生命周期(上) 内容摘要 持久对象的状态的概念 持久对象的状态Demo 一.持久对象的状态的概念 在NHibernate中有三种状态,对它的深入理解,才能更好的理解NHibernate的运行机理,刚开始不太注意这些概念,后来发现它是重要的.对于NHibernate和SQL的关系有更好的理解:对于理解需要持久化的

NHibernate初入门之映射文件配置说明(三)

转载逆心http://www.cnblogs.com/kissdodog/archive/2013/02/21/2919886.html 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表名会加上所指定的schema的名字扩展为全限定名.假若没有指定,表名就不会使用全限定名.default-cascade 指定了未明确注明cascade属性的.Net属性和集合类.Net会采取什么样的默认

NHibernate -- HQL

使用NHibernate中的HQL来查询数据. 代码: 1 /// <summary> 2 /// 查找事件 3 /// </summary> 4 private void btn_Select_Click(object sender, EventArgs e) 5 { 6 7 } 1.查询,且是使用参数: 1 //**** 查询 ***** 2 IQuery query = session.CreateQuery("from Person p where p.Id =

[NHibernate]HQL查询

目录 写在前面 文档与系列文章 查询的几种方式 HQL查询 一个例子 总结 写在前面 上篇文章介绍了nhibernate在项目中的基本配置,包括数据库连接字符串的设置,映射文件的配置及需注意的地方,这篇文章将介绍nhibernate的查询方法. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate]O/R Mapping基础 [NHiberna

【Nhibernate】入门 踩雷篇

总结(喜欢写在前面,记性不好老忘记解决问题时的思路): 使用框架一般不会完整的看文档,直接上来就搞,踩雷是必须的,重要的是遇到雷的时候要快速变换思路,是不是姿势不对(文件位置不对) 提高解决问题的速度. 官网的文章可信度还是挺高的,尽量的不要跑偏.     沿着官网 –> http://nhibernate.info/doc/tutorials/first-nh-app/your-first-nhibernate-based-application.html 开始coding 刚开始map放在

Nhibernate HQL 匿名类(严格说是map的使用以及构造函数的使用

1.map的使用 var hql=string.Format(@"select new map( tc.LimitIndexType as LimitIndexType, tc.LimitScope as LimitScope, tb.Id as Id ) from BasLimitConfig tb,BasProductGroup ta ,BasLimitType tc where tb.LimitDim1Id =ta.Id and tb.LimitDim2Id = tc.Id ")

NHibernate初入门之配置文件属性说明(四)

一.NHibernate配置所支持的属性 属性名 用途 dialect 设置NHibernate的Dialect类名 - 允许NHibernate针对特定的关系数据库生成优化的SQL 可用值: full.classname.of.Dialect, assembly default_schema 在生成的SQL中, 将给定的schema/tablespace附加于非全限定名的表名上. 可用值: SCHEMA_NAME use_outer_join 允许外连接抓取,已弃用,请使用max_fetch_

Nhibernate初入门基本配置(二)

转载地址http://www.cnblogs.com/kissdodog/p/3306428.html 使用NHibernate最重要的一步就是配置,如果连NHibernate都还没有跑的起来,谈何学习.今天就来详解一下NHibernate的配置. 一.NHibernate基本配置 NHibernate配置要注意的有: 1.NHibernate需要一个自定义的配置节点,一般放在Web.config里或App.config里面,当然你可以自己定义实际位置. 示例如下: <configSection

NHibernate开发入门

首先,我们了解一下ORM是什么?ORM指对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”. 其次,我们需要了解.NET领域ORM框架有哪些?在.NET平台下,关于数据持久层框架非常多,以下是主要的5种:1.NHibernate2.NBear3.Castle ActiveRecord4