NHibernate使用--环境搭建
话不多说,直接上内容!
1.首先我们在桌面创建一个新的文件夹Test,然后在Test中创建一个子文件夹LIB,用来存放NHibernate的程序集DLL
2.打开VS创建一个新的解决方案TestNHibernate,将其保存在Test文件夹
3.在解决方案中添加相应的类库TestNHibernate.Data、TestNHibernate.Domain、TestNHibernate.Test(控制台程序)
注解 : TestNHibernate.Data 相当于三层中的业务处理层,用于生成NHibernate中使用的对象
TestNHibernate.Domain 相当于三层中的实体层 ,用来创建模型(实体类)和数据库相互映射和对应,也用来配置NHibernate所需的配置文件
TestNHibernate.Test 相当于三层中的显示层(UI),这里为了方便,使用控制台程序
重点 : 确认程序集和VS是否兼容,确认NHibernate和数据库是否兼容
1.首先我们将下载好的NHibernate压缩包打开,将里面Required_Bins文件夹中的DLL解压到我们创建的Test--LIB文件夹中
2.其次在Required_Bins文件夹中有两个后缀名为xsd的XML文件,我们将其(nhibernate-configuration.xsd、nhibernate-mapping.xsd)复制到C:\Program Files (x86)\Microsoft Visual Studio 12.0\Xml\Schemas 根据VS安装位置的不同可以修改但都是在\Xml\Schemas下的 这两个文件是开启配置文件相应提示的,
3.现在开始确认环境部署是否正确
4 在 TestNHibernate.Test(控制台程序)中引入NHibernate.dll、Iesi.Collections.dll、NHibernate.ByteCode.LinFu.dll,以及TestNHibernate.Data、TestNHibernate.Domain的引入
5.在控制台中引入命名空间using NHibernate; using NHibernate.Cfg;
然后运行 这段代码
ISession session = new Configuration().Configure().BuildSessionFactory().OpenSession();
若程序运行错误出现如下情况 :
就可以考虑更换NHibernate版本或者在TestNHibernate.Test(控制台程序)右键属性 --- 更换框架 (在vs 4.6.1更换版本后会出现配置文件读取错误题,建议降低NHibernate版本使用)
若运行后出现下面这种情况,那恭喜你,我们完成了第一步
6.接下来我们验证和数据库的兼容问题
6.1 在TestNHibernate.Test 的配置文件App.Config文件中配置和数据库的链接
6.2 在配置文件中的configuration节点后创建子节点 切记一定是要在第一个子节点的位置创建
<configuration> <configSections> <section name="" type=""></section>/> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> </startup> </configuration>
6.3 开始正式的配置 下面我将自己配置好的发上来
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!--创建一个自定义节点 配置type--> <!--这样创建是为了方便管理与数据库的链接 注意name的值和下面的节点是对应的哟--> <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"></section> </configSections> <!--配置NHibernate和数据库的链接--> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <!--创建属性节点dialect 这个指的是数据库的方言一般使用MsSql2000Dialect--> <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property> <!--创建属性节点connection.driver_class 这个指的是需要使用那种数据库的驱动,我们这个使用的是SqlClientDriver--> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <!--创建属性节点connection.provider 亲测必须字段--> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <!--数据库连接字符串--> <property name="connection.connection_string"> Data Source=.;Initial Catalog=test;Integrated Security=True <!--Data Source=DESKTOP-IVLTBNP\MSSQLSERVER_2008;Initial Catalog=Test;Integrated Security=True--></property> <!--创建属性节点proxyfactory.factory_class 亲测必须字段 这个部分也是需要引入DLL的(NHibernate.ByteCode.LinFu.dll)--> <!--<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>--> <!-- mapping files 领域对象映射文件所在程序集 这里指的是实体类的相应映射配置文件的位置 我们创建的是TestNHibernate.Domain程序集(命名空间)--> <mapping assembly="TestNHibernate.Domain" /> </session-factory> </hibernate-configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.0.0.4000" newVersion="4.0.0.4000" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
6.4 保存好配置之后,重新生成解决方便 无错误后 启动程序,若程序出现以下情况则环境搭建成功,
6.5 在这个地方我们还不能确定是否和数据库兼容? 本人在使用时出现过错误,更换2008后才运行成功!不过错误是发生在其他地方下面出现了我在说说
7.0 特别说明一下我的环境 VS2013 .NET 4.5.0 SQL SERVER 2008 和 NHibernate
最后放几张效果图 :
文件夹结构图 (注意观察标注的路径 便于区别):
项目结构图(注意看引用关系和标注的代码):