NHibernate在提交事务时出现 OracleParameterCollection 的 Count=9 无效 的解决办法

  作为一个学习NHibernate的新手,经常会遇到各种各样的奇葩问题,其实这些问题的出现恰恰说明了我们技术的不足,将这些问题记录下来加以总结相信对我们进一步的学习有很大的帮助。

  在将封装好的数据插入到数据库里,运行到提交事务的时候,出现了“OracleParameterCollection 的 Count=9 无效” 的问题,由于一般实体错误的话,在执行登陆等操作时会自动报数据库异常等信息,便没有及时考虑到实体设置的错误而绕了一大圈子,在考虑了各种错误情况下均无果,最后哭笑不得的发现,其实这个问题的出现确实与实体有关,是因为在实体关联数据库时一个字段赋值了两次,而另一个字段并没有被赋值,导致找不到列9报错。

  一般来说,将数据插入数据库的过程当中最容易出现的问题基本都在保存、更新等内容里,在这次的错误让人有些摸不着头绪,从而浪费了一下午的时间,将项目的进度大大拖慢,以此谨记。

  在程序报错的时候最重要的就是仔细看他抛出错误的详细内容,报错的根源是在哪条语句(可以采用将相关语句逐一屏蔽、断点调试等方法)比如若是NHibernate之类的错误首先检测实体是否书写正确(与数据库相对应的列、主键的设置等),其次检测一下sql语句是否正确,语句中的“select  * from table ”中的table不是数据库的表名而是实体类的类名。

  学无止境……

posted @ 2017-03-24 16:48  栗子物语  阅读(415)  评论(0编辑  收藏  举报