• 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的下载地址:点击下载



    Orm框架相关文章链接:

    1.NHibernate使用之详细图解

    2.iBatis for net 框架使用

    3.iBatis for Net 代码生成器(CodeHelper)附下载地址

    4.NBear简介与使用图解 

    5.SubSonic框架使用图解

    6.GentleNet使用之详细图解

    关注下面二维码,订阅更多精彩内容。
    微信打赏
    关注公众号(加好友):

  • 相关阅读:
    二进制数组
    model模块
    Decorator [ˈdekəreɪtə(r)] 修饰器/装饰器 -- 装饰模式
    箭头函数
    async [ə'zɪŋk] 函数
    cocos2d-x 事件分发机制 ——触摸事件监听
    算法:高速排序
    [zlib]_[0基础]_[使用Zlib完整解压zip内容]
    设计模式之状态模式(State)摘录
    编写Web Serviceclient訪问www.webxml.com.cn提供的服务
  • 原文地址:https://www.cnblogs.com/vipstone/p/2177830.html
Copyright © 2020-2023  润新知