本文旨在使从未用过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错误。