【NHibernate】HQL入门

本文介绍NHibernate中HQL的使用方法,演示如何通过HQL进行跨表查询,并提供了一个具体的示例代码,展示了从HQL到SQL的转换过程。

 

在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

 

转载于:https://www.cnblogs.com/viewcozy/p/4641021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值