• NHibernate使用之详细图解


    本文档适合初级开发者或者是第一次接触NHibernate框架的朋友,其中NHibernate不是最新的版本,但是一个比较经典的版本 NHibernate 2.1.2,其中用红线标注的部分一定要仔细看,这些都是容易忽略和出错的地方,笔者在此给大家做了特殊标记。

    NHibernate框架的介绍:http://baike.baidu.com/view/954535.htm

     

    开发环境 Vs 2010 + MsSql2005 + NHibernate 2.1.2.

     

    本示例的下载地址:点击下载NHibernate 2.1.2的下载地址:点击下载

     

    目录

    步骤一、创建数据库和映射的表。

    步骤二、创建项目和实体类映射类以及类对应的映射文件。

    步骤三、添加项目引用与NHibernate的dll文件。

    步骤四、配置hibernate.cfg.xml文件(数据库映射信息配置)无需配置web.config。

    步骤五、创建和使用NHibernate.

     

    步骤一、创建数据库和映射的表。如图:

    数据库:hibDB,映射表:people.

     

    步骤二、创建项目和实体类映射类以及类对应的映射文件

    新建一个网站,网站创建之后,网站解决方案右键,选择添加 => 新建项目 => 类库

     

    给类库起名,本测试程序名称为:Com.uuu9.nHibernate,然后把自带的Class1.cs改名为创建映射表的名称(映射实体类的名称),本示例为People.cs,其中实体类的代码为表属性的set与get,如图:

    与之前写的实体类不同的是此实体类每个属性前面就加了virtual,虚方法或者属性的关键字,子类可以从新定义(override),在这里必须有virtual 关键字,不然程序运行就会出错。笔者判断此原因可能是程序在运行时候此属性被重新映射(定义),所以必须添加virtual关键字。

    然后比较重要的一个步骤就是配置此实体类对应的映射文件,此映射xml文件名称固定为“实体类.hbm.xml”,其代码如图:

    实体类的属性配置,其中“Com.uuu9.nHibernate”为上述所建类库(生成程序集的名称)的名称。注意:每个实体类对应的映射文件“实体类.hbm.xml”,都要右键设置生成类型属性为:嵌入的资源。如图:

    因为当作为一个资源被嵌入后,项目的默认命名空间与文件名就组成了资源访问的完整名称,NHibernate运行时会访问资源的完整名称,但如果不设置,程序就找不到映射文件,就会认为此类没有设置映射,也就不能使用NHibernate操作。

     

    步骤三、添加项目引用与NHibernate(版本2.1.2)的dll文件。

    要引用的NHibernate的dll如图:

    其中都为必须引用的dll。

     

    步骤四、配置hibernate.cfg.xml文件(数据库映射信息配置)

    hibernate.cfg.xml文件为NHibernate的配置文件,名称固定,且必须放到Bin目录中。内容如图:

     

    name可以自己随意定义,

    NHibernate.Dialect.MsSql2005Dialect”可根据实际的数据库的需要改为 2000Dialect、2008Dialect。

    注意:“<mapping assembly="Com.uuu9.nHibernate"/>”为实体类生成程序集的名称,一直要写正确,一定要有。

     

    步骤五、创建和使用NHibernate

    使用的代码如图:

     

    至此NHibernate制作完毕。

    本示例的下载地址:点击下载NHibernate 2.1.2的下载地址:点击下载

  • 相关阅读:
    ActionScript简单实现Socket Tcp应用协议分析器
    您还有心跳吗?超时机制分析
    Java线程池架构2-多线程调度器
    Java 连接池的工作原理
    Integrating JDBC with Hibernate
    Codeforce 1255 Round #601 (Div. 2) C. League of Leesins (大模拟)
    Codeforce 1255 Round #601 (Div. 2)B. Fridge Lockers(思维)
    Codeforce 1255 Round #601 (Div. 2) A. Changing Volume (贪心)
    图论--拓扑排序--判断是否为DAG图
    图论--拓扑排序--判断一个图能否被拓扑排序
  • 原文地址:https://www.cnblogs.com/DTWolf/p/4688710.html
Copyright © 2020-2023  润新知