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.0XmlSchemas  根据VS安装位置的不同可以修改但都是在XmlSchemas下的 这两个文件是开启配置文件相应提示的,

        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>
View Code

    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-IVLTBNPMSSQLSERVER_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>
View Code

 

    6.4 保存好配置之后,重新生成解决方便  无错误后 启动程序,若程序出现以下情况则环境搭建成功,

 

               6.5 在这个地方我们还不能确定是否和数据库兼容?  本人在使用时出现过错误,更换2008后才运行成功!不过错误是发生在其他地方下面出现了我在说说

    

 

 7.0  特别说明一下我的环境  VS2013 .NET 4.5.0  SQL SERVER 2008  和 NHibernate

 

最后放几张效果图 :

 文件夹结构图 (注意观察标注的路径 便于区别):

项目结构图(注意看引用关系和标注的代码): 

   

    

原文地址:https://www.cnblogs.com/huanjinyuan/p/8037183.html