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框架方面的知识进行了概要的总结,整理了一些知识体系结构图 ...
随机推荐
- javascript之 JavaScript 工具库
javascript之 JavaScript 工具库jQuery 目录: 一.查找标签和事件绑定以及操作标签的对比 二.DOM对象和jquery的转换 三.$(document).ready( ) ...
- java基础概念整理综合 及补充(jdk1.8)
2018 java基础 笔记回顾摘要 一 1,html 与 注释: <!-- --> 注释不能嵌套 代码都得有注释. 2,空格符: 3,css选择的优先级: id选择器 > ...
- C++编写字符串类CNString,该类有默认构造函数、类的拷贝函数、类的析构函数及运算符重载
编码实现字符串类CNString,该类有默认构造函数.类的拷贝函数.类的析构函数及运算符重载,需实现以下“=”运算符.“+”运算.“[]”运算符.“<”运算符及“>”运算符及“==”运算符 ...
- javascript字符串格式化string.format
String.prototype.format = function () { var values = arguments; return this.replace(/\{(\d+)\}/g, fu ...
- mybat-大文件的存取
在mybatis中存储大文件可以直接存 取的时候取出来的是二进制 1.在实体类中添加大文本和图片 package com.java1234.model; public class Student { ...
- 爬虫爬取代理IP池及代理IP的验证
最近项目内容需要引入代理IP去爬取内容. 为了项目持续运行,需要不断构造.维护.验证代理IP. 为了绕过服务端对IP 和 频率的限制,为了阻止服务端获取真正的主机IP. 一.服务器如何获取客户端IP ...
- 【BZOJ2427】[HAOI2010] 软件安装(缩点+树形DP)
点此看题面 大致题意: 有\(N\)个软件,每个软件有至多一个依赖以及一个所占空间大小\(W_i\),只有当一个软件的直接依赖和所有的间接依赖都安装了,它才能正常工作并造成\(V_i\)的价值.求在容 ...
- 【Python全栈-CSS】background背景
background背景 一.背景图片 background-image: url("img/num.png"); background-position-x: -200px ; ...
- android设备局域网中快速搜索之cling方式
cling方式就像pc端windows局域网工作组刷新显示一样,原来用过扫描ip地址的方式,可以使用就是有点慢,还有一种自己加入组广播,通过发送组广播的方式. android设备局域网中快速搜索之 ...
- shell脚本,awk结合正则来打印文件里面的内容。
文件内容如下:key1abc d key2 1.想得到如下结果: abc d 2.想得到如下结果: key1key2