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方法。
  • 相关阅读:
    添加可运行的js代码
    一,IL访问静态属性和字段
    UI基础UIWindow、UIView
    ASP.NET MVC:会导致锁定的会话
    2013腾讯编程马拉松初赛
    使用phantomjs生成网站快照
    C语言
    设置 Ext.data.Store 传参的请求方式
    HDU 2041 超级楼梯
    MySQL 监控-innotop
  • 原文地址:https://www.cnblogs.com/bqrm/p/1036356.html
Copyright © 2011-2022 走看看