zoukankan      html  css  js  c++  java
  • NHibernate错误集锦

    NHibernate错误集锦(个人原创,部分来自于网络)

    错误信息:Illegal attempt to associate a collection with two open sessions
    错误说明:添加数据时发生错误
    错误原因:数据映射中一对多的字段所致,如Students
    解决办法:将该字段置为null即可;Students=null;
     
    错误信息:Could not add assembly xxxxx,如MyNHibernate.Model
    错误说明:不能加载映射类程序集,此问题原因比较多,但大多数都是hibernate.cfg.xml配置文件中的问题
    错误原因:1.配置文件中程序集名称是否拼写错误2.若是感觉正确,请到生成的文件目录下,再次与生成的文件名比对
    解决办法:1、2.正确配置程序集名称
     
    错误信息:cannot open connection
    错误说明:数据库连接打开失败,使用MySql库可正常访问,NHibernate各项配置均正确的情况下
    错误原因:1、如果用其他工具能正常访问数据库,检查下工程的.NetFramework版本是否一致 2、在.NET版本一致的情况下,检查
        NHibernate.cfg.xml文件中的IP地址,127.0.0.1可用,其他异常,原因未知
    解决办法:1、将工程的.NetFramework版本设置为一致 2、将IP地址配置为127.0.0.1
     
    错误信息:An exception occurred during configuration of persistence layer.
    错误说明:new Configuration().Configure("hibernate.cfg.xml").BuildSessionFactory();
        加载配置文件时出错,可能是找不到文件所致
    错误原因:文件路径不对,如果你创建了文件夹,那么请把文件夹名称加上
    解决办法:xxxx.Configure("Hibernate/hibernate.cfg.xml").xxxxx;
     
    错误信息:给定关键字不在字典中。
    错误说明:new Configuration().Configure("Hibernate/hibernate.cfg.xml").BuildSessionFactory();
        在加载配置文件时错误,一般找不到映射文件就会报这样的错误,先检查配置文件,再检查映射文件
    错误原因:1.映射文件名写错(不想多说……)2.映射文件属性不正确,虽然一再强调“复制到输出目录”选“始终
        复制”,“生成操作”选“嵌入的资源”,但,还是再看看吧
    解决办法:1.类名.hbn.xml2.单击映射文件(xxx.hbn.xml),在属性窗口选择
     
    错误信息:Could not compile the mapping document: xxxx.xxxx.Mapping.xxxx.hbm.xml
    错误说明:编译映射文件出错,一般情况是映射文件找不到关联的实体类
    错误原因:1.类名写错了(去检查一下吧……)2.映射文件中类名标签没加命名空间3.字段名称写错了
        4.可能是个BUG,Model类的命名空间要和程序集名称相同
    解决办法:1.    2.name="命名空间.类, 命名空间"3.4.右键程序集属性,修改默认命名空间或程序集名称
     
    错误信息:Invalid Cast (check your mapping for property type mismatches);
    错误说明:映射文件类型错误,检查下吧
    错误原因:1.与数据库对应类型错误2.外键标签类型错误
    解决办法:1.这个好解决,但也要检查一下2.<bag/>对应IList<T>,<set/>对应ISet<T>
     
    错误信息:Parameter index is out of range.
    错误说明:添加数据时出现错误
    错误原因:1.若是因为外键,那么是给外键赋值方式不对,应该把外键对象赋给字段
    解决办法:1.Class c=new Class();c.ID=1;student.myclass=c;而不是student.ClassID=1;
     
    错误信息:Could not create the driver from NHibernate.Driver.MySqlDataDriver.
    错误说明:数据库驱动有问题,这个问题挺奇怪
    错误原因:1.配置文件中连接字符串配置有问题2.MySql.Data.dll没复制到debug目录下
    解决办法:1.<property name="connection.connection_string">Server=192.168.0.60;Database=test;User 
        ID=root;Password=mysql;CharSet=utf8</property>    2.手动复制MySql.Data.dll到debug目录下
     
    错误信息:in expected: <end-of-text> (possibly an invalid or unmapped class name was used in the query)
    错误说明:执行最大ID查询时出现错误
    错误原因:错把实体类名写成表名from students
    解决办法:from Student
     
    错误信息:Incorrect query syntax
    错误说明:执行最大ID查询时出现错误
    错误原因:网上的查询语句不太对 "select max(ID) from Student" 有的版本就是不行
    解决办法:正确写法 "select max(s.ID) from Student s"
     
    错误信息:could not insert: [MyNHibernate.Model.Student][SQL: INSERT INTO Students (Name, ID) VALUES (?, ?)]
    错误说明:删除外键配置后,添加数据出错
    错误原因:删除外键配置,但没将数据库中相应的字段添加回来,添加数据就会漏项
    解决办法:删除一个外键,就要增加一条普通字段
     
    错误信息:
    错误说明:
    错误原因:
    解决办法:
     
    总结:
    文件结构:User.cs(实体类),User.hbm.xml(映射文件),hibernate.cfg.xml(配置文件)
    库引用:NHibernate.dll(关键库),MySql.Data.dll(数据库)
  • 相关阅读:
    saltstack推送文件到节点
    Linux查看僵尸进程
    Linux批量对某个目录下特定文件进行修改内容
    Linux查看网络连接数
    Linux查看当前目录下哪个目录占用容量最多
    Linux查看inodes最多的目录
    Linux用命令过滤出ip地址
    mysql表字段的增删改操作
    Python安装模块超时
    sql 查询结果中加入空值列
  • 原文地址:https://www.cnblogs.com/huhudollar/p/4651169.html
Copyright © 2011-2022 走看看