丹尼大叔

数学专业毕业,爱上编程的大叔,兴趣广泛。使用博客园这个平台分享我工作和业余的学习内容,以编程交友。有朋自远方来,不亦乐乎。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2016年7月7日

摘要: 在实际的项目中,经常是将NHibernate的实体关系映射类做成独立的工程(assembly dll),只对外提供Session调用的接口。这个程序集作为数据访问层,可以被上面的多个工程(ASP.Net、Windows Form、Windows Serviice等)调用。这篇文章介绍如何设计NHibernate数据访问层的工程,以及如何架构数据访问层和上面的应用层的关系。 阅读全文
posted @ 2016-07-07 22:09 丹尼大叔 阅读(695) 评论(1) 推荐(0) 编辑

2016年7月6日

摘要: 前面文章介绍了NHibernate对简单.net数据类型的映射对照表。NHibernate也可以映射复杂数据类型,这里介绍通过组件映射NHibernate值对象。 阅读全文
posted @ 2016-07-06 22:00 丹尼大叔 阅读(554) 评论(1) 推荐(0) 编辑

摘要: NHibernate实现事务机制非常简单,调用ISession.BeginTransaction()开启一个事务对象ITransaction,使用ITransaction.Commit()提交事务,使用ITransaction.Rollback()回滚事务。 阅读全文
posted @ 2016-07-06 21:03 丹尼大叔 阅读(1083) 评论(1) 推荐(0) 编辑

2016年7月4日

摘要: 对于批量插入和批量修改数据,通过设置NHibernate配置文件的BatchSize属性,可以大量减少NHibernate与数据库交互的次数。 阅读全文
posted @ 2016-07-04 21:24 丹尼大叔 阅读(2009) 评论(1) 推荐(2) 编辑

2016年7月3日

摘要: NHibernate提供两个方法按主键值查找对象:Load/Get。Load方法可以对查询进行优化。Load方法实际得到一proxy对象,并不立即查询数据库。当访问对象的属性的时候才查询数据库。在NHibernate里称为Lazy Loding(延迟加载)。Load方法得到的对象,如果对象不存在,在访问对象的属性时将抛出异常。当需要得到实体对象,但是不需要访问对象属性的时候,宜使用Load方法。 阅读全文
posted @ 2016-07-03 21:19 丹尼大叔 阅读(781) 评论(1) 推荐(0) 编辑

摘要: 在同一时刻数据访问量和更新次数比较大的系统中,产生了数据的并发访问问题。并发访问使得在这样的环境中,所有用户(程序、实际用户、进程、线程等)的操作不产生负面问题。如果不使用并发,在两个用户同时写同一条数据的时候,最后结果是不确定的。不使用并发的时候两个客户同时删除同一条数据,将产生异常终止程序。并发控制方式有两种:悲观并发控制和乐观并发控制,NHibernate使用乐观并发控制。这篇文章首先介绍这两种策略,然后详细介绍NHibernate的乐观并发控制。 阅读全文
posted @ 2016-07-03 18:04 丹尼大叔 阅读(826) 评论(3) 推荐(0) 编辑

摘要: 上一节对NHibernate二级缓存做了简单介绍,NHibernate二级缓存是由SessionFactory管理的,所有Session共享。这一节介绍二级缓存其他两个方面:二级缓存查询和二级缓存管理。 阅读全文
posted @ 2016-07-03 15:15 丹尼大叔 阅读(627) 评论(0) 推荐(0) 编辑

2016年7月2日

摘要: NHibernate的二级缓存由SessionFactory管理,由所有Session共享。二级缓存一般存储不发生变化的数据,如果数据经常要进行修改删除操作,不宜使用缓存。 阅读全文
posted @ 2016-07-02 22:00 丹尼大叔 阅读(785) 评论(3) 推荐(0) 编辑

摘要: Nhibernatea缓存非常强大,按照缓存存储在Session对象还是SessionFactory对象分为一级缓存和二级缓存。一级缓存存在于Session对象里,也叫Session缓存,由Session进行管理。一级缓存是NHibernate内置的缓存。二级缓存存在于SessionFactory对象里,也叫SessionFactory缓存,由SessionFactory进行管理,并且有大量的第三方dll对他进行扩展,他是一种“可插拔式”的缓存。这一节主要讲一级缓存,后面一篇文章介绍二级缓存。 阅读全文
posted @ 2016-07-02 17:34 丹尼大叔 阅读(852) 评论(2) 推荐(1) 编辑

摘要: NHibernate对象持久化。NHibernate对象的三个状态:临时态、持久态、游离态(托管态)。NHibernate三状态的相互转化。 阅读全文
posted @ 2016-07-02 16:37 丹尼大叔 阅读(941) 评论(0) 推荐(2) 编辑

摘要: NHibernate支持所有的数据库数据类型。但是不同数据库之间对应的类型稍有不同,本文列出了SQL Server数据库属性类型和NHibernate数据类型的对照表,可以作为参考工具使用。 阅读全文
posted @ 2016-07-02 15:01 丹尼大叔 阅读(1574) 评论(0) 推荐(0) 编辑

摘要: NHibernate有多种配置方法,代码,配置文件,以及Fluent NHibernate。这里只介绍最常用的两种NHibernate配置方法:通过代码和通过配置文件。 阅读全文
posted @ 2016-07-02 12:17 丹尼大叔 阅读(1101) 评论(0) 推荐(0) 编辑

摘要: 有三种方式可以实现NHibernate运行时监控,监控的信息包括:执行了的SQL语句、NHibernate执行过程、数据库性能分析。这对我们学习NHibernate有很大的帮助,在工作中也能快速定位问题,最好是能够掌握他们。 阅读全文
posted @ 2016-07-02 11:16 丹尼大叔 阅读(1008) 评论(2) 推荐(3) 编辑

摘要: 上一篇文章只完成了简单的NHibernate安装、配置和连接数据库。这篇文章介绍怎样实现最简单的数据库读写操作。 阅读全文
posted @ 2016-07-02 10:04 丹尼大叔 阅读(1034) 评论(2) 推荐(1) 编辑

摘要: 这篇文章介绍了如何创建一个简单的使用NHibernate的控制台应用程序,包括使用NuGet、简单的配置、单表映射、对NHibernate配置文件添加智能提示、使用ISessionFactory和ISession。 阅读全文
posted @ 2016-07-02 09:53 丹尼大叔 阅读(1339) 评论(2) 推荐(4) 编辑

2016年6月30日

摘要: NHibernate是一个成熟的开源的面向对象的.net映射框架。大量的实际项目中正在使用该框架。他是建立在ADO.Net基础之上。目前的版本是NHibernate 4.0.4。本系列文章都是基于NHibernate 4.0版本。 阅读全文
posted @ 2016-06-30 23:00 丹尼大叔 阅读(1817) 评论(2) 推荐(4) 编辑