Nhibernate官方体系结构图部分中文翻译
原文链接 :http://nhibernate.info/doc/nh/en/index.html#architecture
体系结构图
高度抽象NHibernate体系架构图

这幅图展示了NHibernate使用数据库和配置数据为应用程序提供了持久化服务和持久化对象。
精简版NHibernate体系架构图

精简版的体系架构图显示了应用程序有自己的 ADO.NET connections对象和管理自己的事务. 这种方式使用 NHibernate's API的一个子集。
完整版NHibernate体系架构图

完整版的体系架构图显示了Nhibernate的应用程序远离底层依赖的 ADO.NET APIs同时让NHibernate负责细节。
体系结构说明
- 会话工厂ISessionFactory(NHibernate.IsessionFactory):,单个数据库的已编译映射的线程安全(不可变)缓存。
ISession的工厂和IConnectionProvider的客户。可以在进程或集群级别保存可在事务之间重用的可选(二级)数据高速缓存。 - 会话ISession(NHibernate.ISession):,表示应用程序与持久性存储之间的对话的单线程,短期对象。包装ADO.NET连接。 ITransaction的工厂。保存持久化对象的强制(第一级)缓存,在导航对象图或按标识符查找对象时使用。
- 持久化对象(Persistent Objects)及其集合(Collections):包含持久化状态和业务功能的短期单线程对象。这些可能是普通的POCO对象,它们的唯一特殊之处在于它们目前与一个(最多一个)ISession对象相关联。只要会话被关闭,它们将被分离并可在任何应用程序层中自由使用(例如,直接作为传送到表现层的数据传输对象(DTO))。
- 临时对象(Transient Objects)及其集合(Collections):指的是没有和一个ISession关联的持久化类的实例对象。这些实例对象可能是刚刚被程序实例化,还没有来得及被持久化,或者已经持久化但是关联的ISession已经被关闭了。
- 事务 ITransaction (NHibernate.ITransaction):(可选),应用程序用于指定原子操作的单线程,短期对象。是对来自依赖底层的 ADO.NET transaction 做的抽象. 在某些情况下,一个
ISession可能跨越几个ITransaction,因此可以使用事务域。 - 连接提供程序IConnectionProvider(NHibernate.Connection.ConnectionProvider):(可选),ADO.NET连接和命令的工厂。从DbConnection和DbCommand的具体供应商的特定实现中抽象而来。对应用程序不可见,但可以被开发者扩展/实现。
- 驱动程序接口IDriver (
NHibernate.Driver.IDriver):(可选),封装了在ADO.NET 提供程序之间的差异部分的接口。比如参数命名约定和支持ADO.NET特性。 - 事务工厂ITransactionFactory(net.sf.hibernate.TransactionFactory):(可选),事务实例对象的工厂。对应用程序不可见,但可以被开发者扩展/实现。
在精简架构图中可以看出,应用程序可以绕过ITransaction / ITransactionFactory,然后通过IConnectionProvider API直接与ADO.NET通信。
Nhibernate官方体系结构图部分中文翻译的更多相关文章
- Umbraco官方技术文档 中文翻译
Umbraco 官方技术文档中文翻译 http://blog.csdn.net/u014183619/article/details/51919973 http://www.cnblogs.com/m ...
- Go 语言官方包函数中文翻译
Go官方包函数中文翻译 *** import "strings" func Join(a []string, sep string) string Join concatenate ...
- Android Studio 2.0 正式版公布啦 (首次中文翻译)
Android Studio 2.0 公布了,添加了一些新特性: 1. 更加完好的 Instant Run 2. 更快的 Android Emulator 3.GPU Debugger Preview ...
- [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)
本文出处 [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23) 这是我的文章备份 http://www.dotblogs.co ...
- Python 3.10 版本采纳了首个 PEP,中文翻译即将推出
现在距离 Python 3.9.0 的最终版本还有 3 个月,官方公布的时间线是: 3.9.0 beta 4: Monday, 2020-06-29 3.9.0 beta 5: Monday, 202 ...
- Dapr 官方文档中文翻译 v1.5 版本正式发布
作者:敖小剑 - Dapr Approver 经过 Dapr 中国社区十余位贡献者一个多月的努力,Dapr 官方文档中文翻译 v1.5 版本完成翻译和审校,正式发布并上线 Dapr 官网. 访问方式 ...
- 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新
为了方便大家的阅读和学习,也是响应网友的建议,在这里为这个系列做一个目录.在目录开始这前,我先来回答之前遇到的几个问题. 1.为什么要学习EF? 这个问题很简单,项目需要.这不像学校,没人强迫你学习! ...
- Unity性能优化(1)-官方教程The Profiler window翻译
本文是Unity官方教程,性能优化系列的第一篇<The Profiler window>的简单翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻 ...
- 关于.NET知识体系结构图总结
转载:关于.NET知识体系结构图总结-零度http://www.xcode.me/book/net-framework-maps 最近对.NET框架方面的知识进行了概要的总结,整理了一些知识体系结构图 ...
随机推荐
- 高德地图 获取sha1
开发版本sha1 控制台输入 cd .android 回车 再输入 keytool -list -v -keystore debug.keystore 回车 输入密钥库口令: andorid ...
- 【Quartus警告】created implicit net for XXX.
[警告内容]Warning (10236): Verilog HDL Implicit Net warning at forward_replace.v(16): created implicit n ...
- SqlServer查询文件组被占用情况
在SqlServer中,删除一个文件组 alter database [xxxxx] remove filegroup FGMonthTurnIntroduceByMonth13 有时候会遇到如下报错 ...
- Payoneer个人账户注册申请教程
1)照牛排于2013年末写的<免费申请Payoneer万事达预付卡+美国银行账号教程>非常详尽,网友纷纷转载,但生命在于折腾,Payoneer官网几经改版,自2015年3月推出无卡账户以来 ...
- UVA Stacks of Flapjacks 栈排序
题意:给一个整数序列,输出每次反转的位置,输出0代表排序完成.给一个序列1 2 3 4 5,这5就是栈底,1是顶,底到顶的位置是从1~5,每次反转是指从左数第i个位置,将其及其左边所有的数字都反转,假 ...
- “ipconfig不是内部命令或外部命令”解决方法
第一:用鼠标右键单击“计算机”,在弹出的下拉菜单中选择“属性”. 第二:在系统属性中选择“高级系统设置”.在系统属性对话框中找到其上方的“高级”选项卡,里面有一个“环境变量”按钮,点击进入 第三:在下 ...
- mongodb索引 全文索引
全文索引,也叫文本索引,平时,我们百度的搜索,比如api文档的搜索,这种全局的索引就可以使用全文索引实现 全文索引:对字符串与字符串数组创建全文可搜索对索引 使用情况:比如有一个数据集合,存储了用户的 ...
- 漫谈 Clustering (番外篇): Dimensionality Reduction
由于总是有各种各样的杂事,这个系列的文章竟然一下子拖了好几个月,(实际上其他的日志我也写得比较少),现在决定还是先把这篇降维的日志写完.我甚至都以及忘记了在这个系列中之前有没有讲过“特征”(featu ...
- Java源码——HashMap的源码分析及原理学习记录
学习HashMap时,需要带着这几个问题去,会有很大的收获: 一.什么是哈希表 二.HashMap实现原理 三.为何HashMap的数组长度一定是2的次幂? 四.重写equals方法需同时重写hash ...
- java编程基础——栈压入和弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...