NHibernate从入门到精通系列(10)——多对多关联映射
摘要: 内容摘要 单向多对多关联映射 双向多对多关联映射 一、单向多对多关联映射 1.1 多对多关联映射描述 众所周知,持久化类的有三种对应关系:“一对一”、“一对多(多对一)”和“多对多”。在项目开发过程中,我们接触过权限系统。而权限系统中,“用户”和“角色”的对应关系往往就是“多对多”。 让我们看一下“多对多”的数据,如图1.1.1所示:图1.1.1 从数据中,我们能够观察到:多个用户(User)对应多个角色(Role)。构造“多对多”的关联关系,我们不仅需要用户(User)表和角色(Role)表,还需要用户和角色的关系表。通过这三张表的关系构造了“多对多”的关联关系。 让我们看一下代码: pu. 阅读全文
posted @ 2011-03-04 00:26 刘冬.NET 阅读(5330) 评论(31) 编辑
NHibernate从入门到精通系列(9)——一对多关联映射
摘要: 内容摘要 单向关联映射 双向关联映射 一、单向关联映射 1.1 单向关联映射的描述 让我们回顾一下之前讲的《多对一关联映射》,如图1.1.1所示,其实“一对多”关联映射就是“多对一”关联映射相反的映射。 图1.1.1 至于“一对多”单向关联映射的代码如下:publicclassStudent{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}}publicclassClass{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}publicvirt. 阅读全文
posted @ 2011-03-03 15:36 刘冬.NET 阅读(4505) 评论(5) 编辑
NHibernate从入门到精通系列(8)——一对一关联映射
摘要: 内容摘要 单向主键关联映射 双向主键关联映射 唯一外键关联映射 NHibernate的一对一关联映射有三种,单向主键关联映射、双向主键关联映射、唯一外键关联映射。 一、单向主键关联映射 我们模拟一个现实情况:学生(Student)和家庭(Family)的关系。在中国,目前实行计划生育,一个家庭只有一个孩子,孩子上学后就成为了学生。学生和家庭的关系可以认为是一对一的。 让我们看一下“一对一”的表结构,如图1.1所示:图1.1 让我们看一下“一对一”的实体类和映射文件: publicclassStudent{publicvirtualint?ID{get;set;}publicvirtualst. 阅读全文
posted @ 2011-02-25 01:02 刘冬.NET 阅读(5656) 评论(20) 编辑
NHibernate从入门到精通系列(7)——多对一关联映射
摘要: 内容摘要 多对一关联映射概括 多对一关联映射插入和查询 多对一关联映配置介绍 一、多对一关联映射概括 关联关系是实体类与实体类之间的结构关系,分别为“多对一”、“一对一”、“多对多”。然而“多对一”是怎样描述的呢?让我们参考图1.1所示: 图1.1 学生表“T_Student”有两条记录,它们分别对应了班级表“T_Class”的主键值为“1”的同一条记录。所以这就是“多对一”的使用情景。 让我们看一下“多对一”持久化类的结构: publicclassClass{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}}pub. 阅读全文
posted @ 2011-02-24 11:12 刘冬.NET 阅读(5452) 评论(15) 编辑
NHibernate从入门到精通系列(6)——基本映射
摘要: 内容摘要 映射定义概括 基本映射常用标签 NHibernate的类型 一、映射定义概括 1.1 映射定义(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以对象为中心的, 意味着映射是按照持久化类的定义来创建的,而非表的定义。 让我们打开上节课的映射例子: Product.hbm.xml Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlight. 阅读全文
posted @ 2011-02-24 00:21 刘冬.NET 阅读(4991) 评论(13) 编辑
NHibernate从入门到精通系列(5)——持久对象的生命周期(下)
摘要: 内容摘要 持久化类 持久化生命周期中的回调 合法性验证回调 一、持久化类(Persistent Classes) 1.1 什么是持久化类 回答这个问题之前先回答什么是持久化。所谓的持久化就是把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。然而持久化类就是持久化数据的载体,在应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order) 类就是持久化类。不能认为所有的持久化类的实例都是持久的状态——一个实例的状态也可能 是瞬时的或脱管的。 如果这些持久化类遵循一些简单的规则,NHibern
NHibernate从入门到精通系列(4)——持久对象的生命周期(上)
摘要: 内容摘要 持久对象的状态的概念 持久对象的状态Demo 一、持久对象的状态的概念 在NHibernate中有三种状态,对它的深入理解,才能更好的理解NHibernate的运行机理,刚开始不太注意这些概念,后来发现它是重要的。对于NHibernate和SQL的关系有更好的理解;对于理解需要持久化的.NET对象,在它的生命周期中三种状态之间的互相转化有很大帮助。如图1.1所示图1.... 阅读全文
posted @ 2011-02-17 01:18 刘冬.NET 阅读(5914) 评论(26) 编辑
NHibernate从入门到精通系列(3)——第一个NHibernate应用程序
摘要: 内容摘要 准备工作 开发流程 程序开发 一、准备工作 1.1开发环境 开发工具:VS2008以上,我使用的是VS2010 数据库:任意关系型数据库,我使用的是SQL Server 2005 Express 1.2测试环境 nunit 2.5.7 二、开发流程 NHibernate程序的开发流程是: (1).编写领域类与映射文... 阅读全文
posted @ 2011-02-16 00:21 刘冬.NET 阅读(9978) 评论(57) 编辑
NHibernate从入门到精通系列(2)——NHibernate环境与结构体系
摘要: 内容摘要 NHibernate的开发环境 NHibernate的结构体系 NHibernate的配置 一、NHibernate的开发环境 NHibernate的英文官方网站为:http://nhforge.org/ NHibernate目前最新的版本是3.0.0.GA,其下载地址是:http://sourceforge.net/projects/nhibernate/f... 阅读全文
posted @ 2011-02-15 00:23 刘冬.NET 阅读(7814) 评论(13) 编辑
NHibernate从入门到精通系列(1)——NHibernate概括
摘要: 内容摘要 NHibernate简介 ORM简介 NHibernate优缺点 一、NHibernate简介 什么是?NHibernate?NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。... 阅读全文
a 阅读全文