• 在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方法。
  • 相关阅读:
    openOPC与监控页面二
    Node教程——Gulp前端构建工具-教程
    回到顶部插件
    《软件测试52讲》——测试基础知识篇
    计算贝塞尔曲线上点坐标
    少年,不要滥用箭头函数啊
    JS属性defer
    leetcode-572-另一个树的子树
    leetcode-9.-回文数
    leetcode-300-最长上升子序列
  • 原文地址:https://www.cnblogs.com/bqrm/p/1036356.html
Copyright © 2020-2023  润新知