不顾一切最简NHinbernate配置并读写数据库

本文旨在使从未用过NHinbernate的人,使用NHinbernate从0开始到能够读写数据库,所有设置都是最简和默认。

必要条件是应当对C#有所了解,数据库可以不必了解。

1.打开VS建立一个新的类库项目(要选.net framework,其它类型没试过),添加对NHibernate的引用。NHibernate下载地址:https://nhibernate.info,下载后解压,引用。

2.新建一个文件hibernate.cfg.xml,放在项目的根目录下,文件名固定,位置固定,这是默认的规则(以后可以配置,暂时不要动),写入以下文本:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Data Source=192.168.1.111;Initial Catalog=abc;Persist Security Info=True;User ID=sa;Password=12345;</property>
    <property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property>
    <mapping assembly="TestNHibernate3" />
  </session-factory>
</hibernate-configuration>

以上的4行,是最低要求,缺一不可。

其中,connection.driver_class是数据库驱动程序所在的类,如果记不住,可以在引用中右键NHinbernate,在对象浏览器中查看,找到NHibernate.Driver,这里可以看到各种数据库连接程序,我使用的是Sql Server,所以选SqlClientDriver,复制,粘贴到文件中。同时试了一下并列的Sql2008ClientDriver,也可以用,试了一下NHibernate.Driver.OracleClientDriver,不能用,会报错,主要是因为连接字符串不兼容。其它没试,应该是存在着同样的问题。

connection.connection_string是数据库连接串,不多说。

dialect是数据库类型,可以在引用中右键NHinbernate,在对象浏览器中查看,找到NHibernate.Dialect,找到MsSql2012Dialect,复制,粘贴。

mapping的assembly是dll的名称,在本项目中,就是项目的名称TestNHibernate3,对应的dll是TestNHibernate3.dll

3.新建一个实体类

4.新建一个实体映射文件

4.新建一个数据访问类

5.新建一个测试项目

注意事项:

1.测试项目一旦在自己的Debug目录下生成了hibernate.cfg.xml,那么需要重新生成主程序,再次运行测试,才会在自己的Debug下更新

2.XML文件区分大小写,数据库中的表名如果是Abc,在配置文件中写成abc会报No persist for错误。

原文地址:https://www.cnblogs.com/Sabre/p/15178168.html