当前位置:主页   - 电脑 - 网站开发 - ASP.Net
NHibernate之旅(17):探索NHibernate中使用存储过程(下)
来源:网络   作者:   更新时间:2012-08-19
收藏此页】    【字号    】    【打印】    【关闭

  本节内容

  引入

  实例分析

  拾遗

  结语

  引入

  上两篇,介绍使用MyGeneration提供的模板创建存储过程和删除对象、创建对象、更新对象整个详细过程,这篇介绍如何利用<sql-query>做更多的事,在程序开发中,我们不仅仅只利用存储过程增删查改对象,我们还可以想执行任意的存储过程,这不局限于某个对象,某个CURD操作,怎么做呢?注意:本篇并非官方权威的资料,所以敬请参考。如果你还没有学习NHibernate,请快速链接到NHibernate之旅系列文章导航。

  实例分析

  下面我用几个例子来分析使用<sql-query>来执行存储过程。

  1.返回标量

  Step1:存储过程

CREATE PROCEDURE scalarSProcs
  @number int
AS
BEGIN
  SELECT @number as value, 'YJingLee' as name
END

  这里模拟验证键/值对,按键查询名称。这里返回YJingLee。

  Step2:映射文件

  在映射文件中使用<sql-query>并定义<sql-query>查询的名称,使用<return-scalar>元素来指定返回的标量值,并指定字段的别名和类型。调用存储过程时,需要一个参数,这里用命名参数表示,这里打开Customer.hbm.xml在Class元素上编写如下代码:

<sql-query name="ScalarSProcs">
 <return-scalar column="value" type="int"/>
 <return-scalar column="name" type="string"/>
 exec scalarSProcs :number
</sql-query>

  Step3:数据访问方法

  在数据访问层中,使用ISession接口提供的GetNamedQuery方法来调用带命名的存储过程,并传递一个整形参数。代码如下:

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明