zoukankan      html  css  js  c++  java
  • 在sqlinsert中使用自定义的存储过程

    在NHibernate 1.2中可以通过<sql-insert></sql-insert>来自定义添加操作的SQL语句,自然也能使用存储过程。下面小奎就总结一下,在NHibernate中使用自定义存储过程来进行添加要注意的几点。
        第一是在<sql-insert></sql-insert>中写入exec ProcName.这一步就不用费话了。
        第二个要说的是参数。参数是按照你定义property的顺序自动填充的。所以,如果有一些属性不要传递到传递到存储过程中,一定记得标上insert="false"告诉NHibernate一下。ID会做为最后一个参数传递给存储过程,这一点要特别注意,写存储过程也要注意这一点。
        第三个要注意的地方是generator的设置。这个一定要设置成assigned。否则的话,存储过程不会调用,NHibernate会自动生成SQL语句来完成添加操作。
        还有一点是第三点设置引起的。当generator设置成assigned时记得一定要将id字段设置成一个大于0的数字(如果是ID是数据型的话)。否则保存操作将不能将对象保存到数据库。还有一点是如果generator设置成assigned,保存操作要放到一个事务中执行,否则也不能将它提交到数据库。这个主要是当generator设置成assigned时,ISession.Save(object)操作,并不会真正触发数据库操作,而是会等事务的ITransaction的Commit方法被执行才会真正触发数据库操作。如果不放到事务中执行,就在调用ISession.Save方法后,调用一下iSession.Flush方法。
  • 相关阅读:
    逆元模板
    同余方程
    计算系数
    Mayan游戏
    【分治】聪明的质检员(二分)
    瑞士轮(归并排序)
    极值问题
    传纸条
    2014-2015-1学期学习计划
    桌面综合实训答辩验收详情
  • 原文地址:https://www.cnblogs.com/bqrm/p/1036356.html
Copyright © 2011-2022 走看看