http://blog.51cto.com/4837471/1567675

版本:

NHibernate :NHibernate 4.0.1GA

MySql:MySql 5.0.1

常见问题一:

“NHibernate.HibernateException”类型的未经处理的异常在 NHibernate.dll 中发生

其他信息: Could not create the driver from NHibernate.Driver.MySqlDataDriver.

解决方案:

把MySql.Data.dll程序集引入到项目中,这个问题就解决了。原因在于找不到驱动。

常见问题二:

异常:已引发: "Duplicate class/entity mapping MySqlLib.TyAsset" (NHibernate.DuplicateMappingException)

引发了一个 NHibernate.DuplicateMappingException: "Duplicate class/entity mapping MySqlLib.TyAsset"

解决方案:

这个问题是因为在如下的代码的问题:

<?xml version="1.0" encoding="utf-8"?><hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >	<session-factory name="_sessionFactory">		<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>		<property name="connection.connection_string">      User Id=root;Password=123456;Host=127.0.0.1;Port=3306;Database=test;Persist Security Info=True      <!--User Id=itywuser;Password=qwe#123;Host=192.168.72.201;Port=3316;Database=tysx;Persist Security Info=True-->    </property>		<property name="dialect">NHibernate.Dialect.MySQLDialect</property>    <property name="show_sql">true</property>    <property name="hbm2ddl.keywords">none</property>    <property name="hbm2ddl.auto">create</property>    <mapping assembly="MySqlLib"/>	</session-factory></hibernate-configuration>
 

因为hibernate.cfg.xml文件中已经添加了<mapping assembly="xxxx"/>,如果你在加载这个文件时添加了如下代码就会出现这个问题:

ISessionFactory factory = (new Configuration().Configure("D:\\实习文档\\ASP数据库\\TestMySqlLib\\Test\\MySql.cfg.xml")).AddAssembly("TestMySqlLib").BuildSessionFactory();

重复的加载了程序集。

常见问题三:

异常:已引发: "Could not compile the mapping document: MySqlLib.TyAsset.hbm.xml" (NHibernate.MappingException)

引发了一个 NHibernate.MappingException: "Could not compile the mapping document: MySqlLib.TyAsset.hbm.xml"

线程: <无名称>[11980]

解决方案:

这个问题出在hbm.xml文件是毋庸置疑的,代码如下:

<hibernate-mapping assembly="TestMySqlLib" xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">  <class name="Student" table="student" lazy="false">
 
<!--正确的做法--><hibernate-mapping assembly="TestMySqlLib" xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">  <class name="TestMySqlLib.Student,TestMySqlLib" table="student" lazy="false">
 

这个官方文档中有详细的说明,网络上也有很多文章说这个问题,我就不再这里赘述这个原因了。

常见问题四:

“System.ArgumentException”类型的未经处理的异常在 System.Data.dll 中发生

其他信息: 列“ReservedWord”不属于表 ReservedWords。

解决方案:

在hibernate.cfg.xml文件中添加数据源的一条属性设置:如下

<property name="hbm2ddl.keywords">none</property>

原因请参看hbm2ddl.keywords的详解,文章链接:http://www.cnblogs.com/Byrd/archive/2012/01/09/2317230.html

常见问题五:

“NHibernate.Cfg.HibernateConfigException”类型的未经处理的异常在 NHibernate.dll 中发生 其他信息: An exception occurred during configuration of persistence layer.

解决方案:

这个问题主要出在一下代码中:

ISessionFactory factory = (new Configuration().Configure()).AddAssembly("TestMySqlLib").BuildSessionFactory();

第一:保证你的配置文件名为:hibernate.cfg.xml

第二:设置文件hibernate.cfg.xml文件的输出属性,为始终复制。因为采用上面方式加载配置文件,会到debug目录下去找名字为hibernate.cfg.xml的文件。关于配置文件加载方式可在我的博客中找相关文章。

常见问题六:

“NHibernate.MappingException”类型的未经处理的异常在 NHibernate.dll 中发生

其他信息: Could not add assembly testMySqlLib

解决方案:

这个问题刚好和第二问题刚好相反,没有添加程序集,有两个方法可以解决这个问题

第一:

在hibernate.cfg.xml文档中添加<mapping assembly="xxxx"/>

第二:

在加载hibernate.cfg.xml文件时用如下代码:

ISessionFactory factory = (new Configuration().Configure("D:\\实习文档\\ASP数据库\\TestMySqlLib\\Test\\MySql.cfg.xml")).AddAssembly("xxxx").BuildSessionFactory();

常见问题七:

异常:已捕获: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' Sex varchar, Age int, Addr varchar, Phone varchar, primary key (Stuno))' at line 1" (MySql.Data.MySqlClient.MySqlException)

线程: <无名称>[2884]

解决方案:

该问题尚未查找到解决方案,如果您和我一样碰到这个问题并且已经解决了或者你有自己的看法,请在下面留言告诉我还有更多的网友,我们一起解决这个问题。谢谢。

常见问题八:

异常:已引发: "未能加载文件或程序集“NHibernate.XmlSerializers, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”或它的某一个依赖项。系统找不到指定的文件。" (System.IO.FileNotFoundException)引发了一个 System.IO.FileNotFoundException: "未能加载文件或程序集“NHibernate.XmlSerializers, Version=3.0.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”或它的某一个依赖项。系统找不到指定的文件。"

线程: <无名称>[8276]

解决方案:

该问题尚未查找到解决方案,如果您和我一样碰到这个问题并且已经解决了或者你有自己的看法,请在下面留言告诉我还有更多的网友,我们一起解决这个问题。谢谢。

常见问题九:

异常:已引发: "No persister for: StudentLib.Student" (NHibernate.MappingException)

引发了一个 NHibernate.MappingException: "No persister for: StudentLib.Student"

线程: <无名称>[18324]

解决方案:

一般这种是因为没有把student.hbm.xml文件设置为嵌入资源。只要把映射文件设置为嵌入资源就可以解决这个问题了。

(转)NHibernate+MySql常见问题的更多相关文章

  1. 30.Mysql常见问题和应用技巧

    30.Mysql常见问题和应用技巧30.1 忘记Mysql的root密码30.2 如何处理MyISAM存储引擎的表损坏 30.2.1 方法一:使用myisamchk工具 30.2.2 方法二:使用SQ ...

  2. (转)【面试】【MySQL常见问题总结】【03】

    [常见面试问题总结目录>>>] [面试][MySQL常见问题总结][03] 2016-05-29 22:20 阅读(8244) 评论(2) [面试][MySQL常见问题总结][02] ...

  3. NHibernate+MySql (erro 解决方法)

    error1.  Could not create the driver from NHibernate.Driver.MySqlDataDriver 解决方法:在使用Nhibernate连接Mysq ...

  4. Mysql常见问题及优化

    本文将就以下三个问题进行展开: 1.库表设计 2.慢 SQL 问题 3.误操作.程序 bug 时怎么办 一.库表设计 1.1 引擎选择 在 mysql 5.1 中,引入了新的插件式存储引擎体系结构,允 ...

  5. mysql常见问题

    Q:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.111' (61)A: 找到my.cnf,把#bind-addres ...

  6. MySQL常见问题汇总(原创)

    本文记录了使用Mysql时遇到的问题,持续更新中... 1.在windows命令行下登录mysql时报错: C:\Program Files\MySQL\MySQL Server 5.0\bin> ...

  7. NHibernate的常见问题及解决方案

    问题1 : 异常:in expected: <end-of-text> (possibly an invalid or unmapped class name was used in th ...

  8. Mysql 常见问题

    ------------------------------------------------ ------------------------------------------------ -- ...

  9. Nhibernate + MySQL 类型映射

    用SQLyog工具创建表 然后用自动映射工具NHibernate Mapping Generator对表做自动映射,得到 这个是可视化界面,后面有对应的代码. using System; using ...

随机推荐

  1. courator - create

    0. retry policy RetryPolicy retryPolicy = new ExponentialBackoffRetry(3000,3); 1. client 1) recipes ...

  2. Django-models的字段类型

    model的field类型 1.models.AutoField   ---自增列 = int(11)    如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设 ...

  3. C# JToken类的使用,实现解析动态json数据、遍历、查找

    在原来解析json数据是,一般都是用反序列化来实现json数据的解读,这需要首先知道json数据的结构并且建立相应的类才能反序列化,一旦遇到动态的json数据,这种方法就不使用. 为了解决动态解析js ...

  4. 深入Spring Boot:怎样排查 Cannot determine embedded database driver class for database type NONE

    ref:https://www.journaldev.com/13830/spring-boot-cannot-determine-embedded-database-driver-class-for ...

  5. 为DOM节点添加或者删除class

    项目中如果应用了常用的javascript类库,多数情况下,这些已经封装好的类库,都会封装一个类似于addClass和removeClass的方法,以便于我们对DOM节点的class进行操作. 以jQ ...

  6. JSP 静态文件路径配置

    在JSP中,往往需要引入一些静态文件. 例如这样引用. 往往因为目录结构的问题,不知道是用点还是 .../ ./ ../表示相对当前路径的上一级目录:./表示相对当前的路径: 这里有个快捷的办法. l ...

  7. uva-10391-枚举

    题意:对于输入的字符串,判断是否存在一个单词a=b+c 俩种方法,枚举每一个单词进行拼接,复杂度是n*n 枚举每一个单词,对单词进行substr,判断substr出来的是不在map里面 #includ ...

  8. 写了一个bug----使用已经被删除的内存

    #include <iostream> #include <stdio.h> #include <memory.h> using namespace std; ; ...

  9. PHP微信公共号H5页面跳转小程序。

    1.H5跳转小程序. function myfun(){ var openid = "<?=$_SESSION['openid']?>"; wx.miniProgram ...

  10. HTML5 图片宽高自适应,居中裁剪不失真

    一,使用 JS,先上效果图,右图为定死宽高的效果,左图为处理之后的 1, 主要思路是,在图片 onload 后,将图片的宽高比和 div 容器的宽高比进行比较, 2, 从而确定拉伸或者压缩之后是宽还是 ...