1. 新建一个web 项目
我的Web项目的名称是 NHibernateTemplate\llr.web
实体层名称 NHibernateTemplate\llr.Models
数据层名称 NHibernateTemplate\llr.DAL
业务层名称 NHibernateTemplate\llr.BLL
取名是为llr.* 是为了更好的通一命名空间,就不需要建好项目后再去修改默认命名空间或程序集名称了。llr为我姓名简称,大家可以自便
2. 引用NHibernate 所需要的DLL文件
请看第一天内容
3. 创建实体类
可以采用手工或 模板生成 去做, 本人纯手工,因为手工现在比较值钱
三个类
User.cs
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace llr.Models
{
[Serializable]
public class User
{
public virtual int Id { get; set; }
public virtual string U_name { get; set; }
public virtual string U_pwd { get; set; }
public virtual int R_id { get; set; }
}
}
Menu.cs
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace llr.Models
{
[Serializable]
public class Menu
{
public virtual int Id{get;set;}
public virtual string M_title{get;set;}
public virtual string M_parnet{get;set;}
public virtual string M_url { get; set; }
}
}
Role.cs
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace llr.Models
{
[Serializable]
public class Role
{
public virtual int Id { get; set; }
public virtual string R_name { get; set; }
public virtual string R_desc { get; set; }
}
}
上面的实体类有一个特别的地方就是属性加了 virtual 关键字,为什么要这么设置了?因为
,我也忘记了。在最后会提供一个pdf文档,里面有的。
4. 对实体类进行配置映射XML文件
每一个实体类文件对应这一个XML配置文件 , 配置文件名称命名是有规定的: 实体类名+.hbm.xml 如 User.cs 的配置文件名称为 User.hbm.xml
<!--配置映射对象的所在程序集各命名空间 -->
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="llr.Models" namespace="llr.Models">
<!--映射对象类与数据库中对应的表 -->
<class name="llr.Models.User,llr.Models" table="Users">
<id name="Id" column="Id" unsaved-value="0">
<generator class="identity"/> <!-- 有几种方式 assigned 为主键不是自动增长的由程序来控件,identity 是由数据库自动控件不需要人工处理,还有一些其它的选项可以查询一下 -->
</id>
<!-- 设置其它字段 第一个为属性名就是实体类里面的属性名 column 为数据库里面字段名 -->
<property name="U_name" column="u_name" not-null="false" type="string" length="10" />
<property name="U_pwd" column="U_pwd" not-null="false" type="string" length="10"/>
<!-- 这里应该是外键关系,先用一般的关系来处理 -->
<property name="R_id" column="r_id" not-null="false" type="int" length="4"/>
</class>
</hibernate-mapping>
配置文件写好以后,请做一件事 在xml 文件上面点右键 --》 属性 --》将其它 生成操作 改变为 嵌入的资源 这样才能读到xml文件!
其它的二个实体类配置也按上面的完成
Menu.hbm.xml
<!--配置映射对象的所在程序集各命名空间 -->
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="llr.Models" namespace="llr.Models">
<!--映射对象类与数据库中对应的表 -->
<class name="llr.Models.Menu,llr.Models" table="Menu">
<id name="Id" column="mid" unsaved-value="0">
<generator class="assigned"/>
<!-- 有几种方式 assigned 为主键不是自动增长的由程序来控件,identity 是由数据库自动控件不需要人工处理,还有一些其它的选项可以查询一下 -->
</id>
<!-- 设置其它字段 第一个为属性名就是实体类里面的属性名 column 为数据库里面字段名 -->
<property name="M_title" column="m_title" not-null="false" type="string" length="10" />
<property name="M_url" column="m_url" not-null="false" type="string" length="10"/>
<!-- 这里应该是外键关系,先用一般的关系来处理 -->
<property name="M_parnet" column="m_parnet" not-null="false" type="int" length="4"/>
</class>
</hibernate-mapping>
Role.hbm.xml
<!--配置映射对象的所在程序集各命名空间 -->
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="llr.Models" namespace="llr.Models">
<!--映射对象类与数据库中对应的表 -->
<class name="llr.Models.Role,llr.Models" table="Role">
<id name="Id" column="rid" unsaved-value="0">
<generator class="identity"/>
<!-- 有几种方式 assigned 为主键不是自动增长的由程序来控件,identity 是由数据库自动控件不需要人工处理,还有一些其它的选项可以查询一下 -->
</id>
<!-- 设置其它字段 第一个为属性名就是实体类里面的属性名 column 为数据库里面字段名 -->
<property name="R_name" column="r_name" not-null="false" type="string" length="10" />
<property name="R_desc" column="r_desc" not-null="false" type="string" length="10"/>
</class>
</hibernate-mapping>
搞完后准备写数据库连接了。下次继续
浙公网安备 33010602011771号