Nhibernate学习之many-to-many篇

  1. 学习目的:

通过进一步学习Nhibernate基础知识,掌握用Nhiberate实现多对多的业务逻辑

  1. 开发环境+必要准备

  开发环境: windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition

      前期准备: 学习上两篇单表操作many-to-one篇
 

3.对上篇文章的部分解释

 1)bag节点:用于定义System.Collection.IList类型的集合元素。

属性

用法

举例

name

映射的属性(必须)

name=”SalaryList”

table

映射的数据表(可选) table=”Salary”
lazy 延迟加载(可选) Lazy=true|false
cascade 指示级联操作方式(可选) Cascade=all
inverse 关联由谁负责维护 Inverse=”true”

当lazy=”true”,父类初始化的时候不会自动加载子类集合

 Cascade为级联操作方式,包括: 

属性 用法说明
none 默认值,不进行级联操作
save-update save和update级联
delete 删除级联
delete-orphan 删除不相关的父对象的子对象
all save/update/delete级联
all-delete-orphan all+delete-arphan
  当inverse=”true”的时候代表由子类维护级联关系。这时候如果只往父类中添加子类,但不设定子类的父类,是不能保存子类的

 4.多对多业务模型

    还是用户系统,1个用户职员隶属于多个部门,同时1个部门有多个不同的职员 
    用户和部门之间的数据关系图为:

5.  实现步骤:
  1)User.cs

User.cs

  2)User.hbm.xml 

User.hbm.xml
  3) Departments.cs
Departments
4) Departments.hbm.xml
Departments.hbm.xml
5) 数据操作类 
UserDepartmentFixure.cs
6)单元测试类
UnitTest1.cs
到现在为止,终于更加体会到nhibernate的强大了。继续努力,fight!
files:/Files/jillzhang/simple3.rar
上几篇文章:   Nhibernate学习之起步篇-1 
              Nhibernate分析之华山论剑篇 
              Nhibernate学习起步之many-to-one篇
posted @ 2007-03-23 23:58 Robin Zhang 阅读(...) 评论(...) 编辑 收藏