十一、NHibernate之调用储存过程

说明

我们依次从删除对象、新建对象、更新对象、查询对象来介绍在NHibernate中如何使用存储过程的整个详细过程。在NHibernate的映射文件中,在Class元素中提供了<sql-delete><sql-insert><sql-update>元素用于删除、新建、更新对象,注意这三个元素顺序唯一,也就是说在配置文件里,这三个配置节的顺序是固定的。在根元素提供了<sql-query>元素用来查询对象。

准备

虽然我们在NHibernate.cfg.xml文件中配置了<property name="show_sql">true</property>配置节,这样就可以输出NHibernate自动生成的sql语句了,但是在我这里只能输出select语句的生成sql,其它的什么deleteupdate之类都没见到过。没办法,既然在NHIbernate里无法看到所有的生成的sql的话,就直接到sql server数据库中来查看吧!我们可以使用SQL事件探查器来跟踪NHibernate生成的所有sql语句,如果已经使用过的话可以直接跳过,如果还没使用过的话,我简单介绍一下使用方法,因为我也是才使用,所以也只能介绍最基本的查看功能。

1)       打开程序:所有程序-Microsoft SQL Server-》事件探查器

2)       新建跟踪:文件-》新建-》跟踪-》输入正确的服务器、用户名和密码-》确定

3)       跟踪属性配置:在这里可以配置跟踪属性,如果你有细致的需要可以这里配置,这里我们不修改任何配置,直接点“运行”出现如下结果:

 

4)       上面图中的网格部分是每个事件的跟踪列表,下面灰色背景的是详细信息,我们如果选中了上面网格中的某行的话,详细信息就会出现下面的部分,这样方便查看。

 

一、使用事件查探器跟踪NHibernate生成的sql语句

1)       首先向Customer表中添加几行数据(多加几行),等后面测试删除时需要用,如下:

insert into Customer values('test','Name')

 

2)       编写DAL中的删除方法,如下:

        //使用存储过程删除Customer

        public void DeleteCustomer(int customerId)

        {

            Customer customer = session.Get<Customer>(customerId);

            session.Delete(customer);

            session.Flush();  //同步到数据库

        }

 

3)       编写DAL.Test中的测试方法如下:

        [Test]

        public void DeleteCustomerTest()

        {

            sample.DeleteCustomer(x);   //x表示一个CustomerId,请自己查看数据库中的值

        }

 

4)       右键上面的测试方法,并点击执行“run test(s)”命令,再来看SQL事件查探器中的数据,如下:

 

从图片中可以清楚的看到NHibernate生成的删除语句,呵呵,挺好理解的吧,也不需要用什么其它的软件或插件。

 

二、执行删除对象的存储过程

1)       首先,我们新建删除Customer

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值