
NHibernate
my98800
这个作者很懒,什么都没留下…
展开
-
NHibernate之旅(9):探索父子关系(一对多关系)
本节内容 引入NHibernate中的集合类型建立父子关系父子关联映射结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHibernate中的亮点,也是最难掌握的技术。从这篇开始学习这些东西,我将图文结合来说明这里奥秘的知识。 前几篇,我们的例子只使用了一个简单的Customer对象。但是在客户/订单/产品的经典组合转载 2017-02-17 09:17:23 · 246 阅读 · 0 评论 -
NHibernate之旅(20):再探SchemaExport工具使用
本节内容 引入实例分析 1.表及其约束2.存储过程、视图 结语 引入 上篇我们初步探索了SchemaExport工具使用,知道如何使用SchemaExport工具和SchemaUpdate工具利用NHibernate持久化类和映射文件删除、创建、更新数据库架构,这篇具体分析如何为表字段增加一些约束?如何生成存储过程?如何生成视图?使用SchemaExport工具帮你搞定。转载 2017-02-22 08:30:12 · 429 阅读 · 0 评论 -
NHibernate之旅(3):探索查询之NHibernate查询语言(HQL)
本节内容 NHibernate中的查询方法NHibernate查询语言(HQL) 1.from子句2.select子句3.where子句4.order by子句5.group by子句 实例分析结语 上一节,我们初步搭建了一个NHibernate程序,完成了映射Customer表并读取数据功能,这一节和下一节我们初步探讨一下在NHibernate中的查询方法。我这之前还是先回忆转载 2017-02-14 12:01:44 · 300 阅读 · 0 评论 -
NHibernate之旅(4):探索查询之条件查询(Criteria Query)
本节内容 NHibernate中的查询方法条件查询(Criteria Query) 1.创建ICriteria实例2.结果集限制3.结果集排序4.一些说明 根据示例查询(Query By Example)实例分析结语 上一节,我们介绍了NHibernate查询语言的一种:NHibernate查询语言(HQL,NHibernate Query Language),这一节介绍一下条转载 2017-02-14 12:02:35 · 254 阅读 · 0 评论 -
NHibernate之旅(21):探索对象状态
本节内容 引入对象状态对象状态转换结语 引入 在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象。这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的,为了区分这些对象,根据对象和当前会话的关联状态,我们可以把对象分为三种: 瞬时对象:对象刚刚建立。该对象在数据库中没有记录,也不在ISession缓存中。如果该对象是自动生成主键,转载 2017-02-23 10:43:25 · 263 阅读 · 0 评论 -
NHibernate之旅(22):探索NHibernate一级缓存
本节内容 引入NHibernate一级缓存介绍NHibernate一级缓存管理结语 引入 大家看看上一篇了吗?对象状态。这很容易延伸到NHibernate的缓存。在项目中我们灵活的使用NHibernate的缓存机制。NHibernate性能会大大提高的哦,我们接下来就来探索NHibernate缓存机制吧,这篇我没有准备什么,先来学习下NHibernate一级缓存。 NHib转载 2017-02-23 10:44:04 · 244 阅读 · 0 评论 -
NHibernate之旅(5):探索Insert, Update, Delete操作
本节内容 操作数据概述1.新建对象2.删除对象3.更新对象4.保存更新对象结语 操作数据概述 我们常常所说的一个工作单元,通常是执行1个或多个操作,对这些操作要么提交要么放弃/回滚。想想使用LINQ to SQL,一切的东西都在内存中操作,只有调用了DataContext.SubmitChanges()方法才把这些改变的数据提交到数据库中,LINQ to SQL那么提交要么回滚。转载 2017-02-15 14:52:23 · 287 阅读 · 0 评论 -
NHibernate之旅(6):探索NHibernate中的事务
本节内容 事务概述1.新建对象 【测试成功提交】【测试失败回滚】 2.删除对象3.更新对象4.保存更新对象结语 上一篇我们介绍了NHibernate中的Insert, Update, Delete操作,这篇我们来看看NHibernate中的事务。你通过它可以提交或者回滚你的操作。 事务概述 1.NHibernate中的事务(Transactions) 简单描述转载 2017-02-15 14:53:32 · 270 阅读 · 0 评论 -
NHibernate之旅(7):初探NHibernate中的并发控制
本节内容 什么是并发控制? 悲观并发控制(Pessimistic Concurrency)乐观并发控制(Optimistic Concurrency) NHibernate支持乐观并发控制实例分析结语 什么是并发控制? 当许多人试图同时修改数据库中的数据时,必须实现一个控制系统,使一个人所做的修改不会对他人所做的修改产生负面影响。这称为并发控制。 简单的理解就是2个转载 2017-02-16 08:36:29 · 412 阅读 · 0 评论 -
NHibernate之旅(8):巧用组件之依赖对象
本节内容 引入方案1:直接添加方案2:巧用组件实例分析结语 引入 通过前面7篇的学习,有点乏味了~~~这篇来学习一个技巧,大家一起想想如果我要在Customer类中实现一个Fullname属性(就是Firstname和Lastname的组合)该怎么做呢? 方案1:直接添加 “我知道!修改Customer类,添加一个Fullname属性!即Customer.Fullna转载 2017-02-16 08:37:12 · 263 阅读 · 0 评论 -
NHibernate之旅(23):探索NHibernate二级缓存(上)
本节内容 引入介绍NHibernate二级缓存NHibernate二级缓存提供程序实现NHibernate二级缓存结语 引入 上一篇我介绍了NHibernate内置的一级缓存即ISession缓存。这篇我们来了解下NHibernate二级缓存即ISessionFactory级别缓存。二级缓存是可扩展的,在NHibernate Contrib上提供了第三方NHibernate二转载 2017-02-27 08:45:13 · 276 阅读 · 0 评论 -
NHibernate之旅(19):初探SchemaExport工具使用
本节内容 引入SchemaExport工具SchemaUpdate工具实例分析结语 引入 我其实都是一直先编写持久化类和映射文件,然后使用SchemaExport工具生成数据库架构。这样的方式就是领域驱动设计/开发(DDD,Domain Driven Design/Development)。我的理解是系统的设计应该基于对象模型,主要考虑对象的设计和逻辑上,然后按照对象模型建立数据转载 2017-02-22 08:29:32 · 250 阅读 · 0 评论 -
NHibernate之旅(2):第一个NHibernate程序
本节内容 开始使用NHibernate1.获取NHibernate2.建立数据库表3.创建C#类库项目4.设计Domain 4-1.设计持久化类4-2.编写映射文件 5.数据访问层 5-1.辅助类5-2.编写操作 6.数据访问层的测试 6-1.配置NHibernate6-2.测试 结语 作者注:2009-11-06已更新 开始使用NHibernate转载 2017-02-13 08:33:07 · 260 阅读 · 0 评论 -
NHibernate之旅(10):探索父子(一对多)关联查询
本节内容 关联查询引入一对多关联查询 1.原生SQL关联查询2.HQL关联查询3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NHibernate查询语言(HQL,NHibernate Query Language)、条件查询(Criteria API,Query By Example(QBE)是Criter转载 2017-02-17 09:18:15 · 260 阅读 · 0 评论 -
NHibernate之旅(11):探索多对多关系及其关联查询
本节内容 多对多关系引入多对多映射关系多对多关联查询 1.原生SQL关联查询2.HQL关联查询3.Criteria API关联查询 结语 多对多关系引入 让我们再次回顾在第二篇中建立的数据模型: 在图上,我已经清晰的标注了表之间的关系,上两篇分析Customer和Order之间的“外键关系”或者称作“父子关系”、“一对多关系”和关联查询,这一篇以Order为转载 2017-02-18 19:30:41 · 313 阅读 · 0 评论 -
NHibernate之旅(12):初探延迟加载机制
本节内容 引入延迟加载实例分析 1.一对多关系实例2.多对多关系实例 结语 引入 通过前面文章的分析,我们知道了如何使用NHibernate,比如CRUD操作、事务、一对多、多对多映射等问题,这篇我们初步探索NHibernate中的加载机制。 在讨论之前,我们看看我们使用的数据模型,回顾一下第二篇建立的数据模型。 Customer与Orders是一对多转载 2017-02-18 19:31:40 · 434 阅读 · 0 评论 -
NHibernate之旅(13):初探立即加载机制
本节内容 引入立即加载实例分析 1.一对多关系实例2.多对多关系实例 结语 引入 通过上一篇的介绍,我们知道了NHibernate中默认的加载机制——延迟加载。其本质就是使用GoF23中代理模式实现,这节我们简单分析NHibernate另一种加载机制——立即加载。我用一张图片形象的展现立即加载机制。 立即加载 顾名思义,就是立刻加载相关联对象集合,与延转载 2017-02-19 15:21:33 · 358 阅读 · 0 评论 -
NHibernate之旅(14):探索NHibernate中使用视图
本节内容 引入1.持久化类2.映射文件3.测试结语 引入 在数据库操作中,我们除了对表操作,还有视图、存储过程等操作,这一篇和下篇来学习这些内容。这篇我们来学习如何在NHibernate中使用视图。首先,我们在数据库中建立一个名为viewCustomer视图,选中CustomerId、Firstname、Lastname、OrderId、OrderDate项。 下面转载 2017-02-19 15:22:15 · 302 阅读 · 0 评论 -
NHibernate之旅(15):探索NHibernate中使用存储过程(上)
本节内容 引入使用MyGeneration生成存储过程实例分析 1.删除对象 结语 引入 上一篇,我们介绍了视图,征集大家的意见,我接下来可能用三篇篇幅来介绍在NHibernate中如何使用存储过程的整个详细过程,这些全是在实际运用中积累的经验,涉及刚刚使用的错误信息,如何修改存储过程,并且比较没有使用存储过程的不同点,并非官方比较权威的资料,所以敬请参考。 使用M转载 2017-02-20 08:57:46 · 480 阅读 · 0 评论 -
NHibernate之旅(16):探索NHibernate中使用存储过程(中)
本节内容 引入实例分析 2.创建对象3.更新对象 结语 引入 上一篇,怎么使用MyGeneration提供的模板创建存储过程和删除对象存储过程的使用,这篇接下来介绍在NHibernate中如何使用存储过程创建对象、更新对象整个详细过程,这些全是在实际运用中积累的经验,涉及使用的错误信息,如何修改存储过程,并且比较没有使用存储过程的不同点,并非官方比较权威的资料,所以敬请参转载 2017-02-20 09:04:39 · 257 阅读 · 0 评论 -
NHibernate之旅(17):探索NHibernate中使用存储过程(下)
本节内容 引入实例分析拾遗结语 引入 上两篇,介绍使用MyGeneration提供的模板创建存储过程和删除对象、创建对象、更新对象整个详细过程,这篇介绍如何利用做更多的事,在程序开发中,我们不仅仅只利用存储过程增删查改对象,我们还可以想执行任意的存储过程,这不局限于某个对象,某个CURD操作,怎么做呢?注意:本篇并非官方权威的资料,所以敬请参考。如果你还没有学习NHibernat转载 2017-02-21 08:18:50 · 406 阅读 · 0 评论 -
NHibernate之旅(18):初探代码生成工具使用
本节内容 引入代码生成工具结语 引入 我们花了大量的篇幅介绍了相关NHibernate的知识,一直都是带着大家手动编写代码,首先创建数据库架构,然后编写持久化类和映射文件,最后编写数据操作方法,测试方法。这是典型的数据库驱动开发(DbDD,Database-Driven Developent)技术,但是自己不是这样做的,我先编写持久化类和映射文件,然后偷偷的使用SchemaExp转载 2017-02-21 08:19:42 · 462 阅读 · 0 评论 -
NHibernate之旅(1):开篇有益
本节内容 NHibernate是什么NHibernate的架构NHibernate资源欢迎加入NHibernate中文社区 作者注:2009-11-06已更新 NHibernate开篇有益 学习NHibernate有一段时间了,打算做个阶段性总结,就萌生了这个系列,这个系列参考NHibernate官方文档和Steve Bohlen的NHibernate之夏视频教程。作为开篇转载 2017-02-13 08:31:56 · 206 阅读 · 0 评论 -
NHibernate之旅(24):探索NHibernate二级缓存(下)
本节内容 引入使用NHibernate二级缓存启用缓存查询管理NHibernate二级缓存结语 引入 呵呵,今天收到了微软“最有影响力开发者”礼包,很高兴自己荣获“微软最有影响力开发者”称号(详情请进),这篇我还继续上一篇的话题聊聊NHibernate二级缓存剩下的内容,比如你修改、删除数据时,二级缓存是什么策略呢?我们如果使用缓存查询呢?如何管理NHibernate二级缓存呢?转载 2017-02-27 08:47:06 · 317 阅读 · 0 评论