• 第一章 架构


    1.1概述
    一个(非常)高层的NHibernate 架构图。

     
    这个图显示了NHiberante使用数据库和配置数据来提供在应用程序中的持久化服务(和持久化对象)。
    我们跟愿意去展示一个更详细的运行时架构图。不幸的是,NHiberante是弹性的和支持多种方式。我们将显示两个极端。这个“lite”架构图已经有了为应用提供它自己的ADO.NET连接和管理他自己的事务。这个approach使用了NHiberante的API的很小的一个子集。
     

    这个完整架构图概述了应用程序院里ADO.NET API并让NHiberante细节处理。
     

    这里是一些图中提到的术语的定义。
    SessionFactory(NHibernate.ISessionFactory)
    对于单一数据库已编译的映射是线程安全的。一个会话工厂,和一个连接器的客户端。可以获得一个随意数据缓存在执行之间被复用,或者在处理时,或集群层次。

    Session(NHibernate.ISession)
    一个单线程的,段生命周期的对象。代理了应用程序和持久层之间的一个会话。封装了ADO.NET连接。提供事务工厂。可以保持持久化数据存储,使用时导航数据视图,或者靠指示字查询对象。

    Persistent Objects and Collections
    短生命周期,单线程对象包含持久化状态和业务功能。这些可能是普通对象,唯一特别的是他们与当前会话关联。会话一旦关闭,他们将被分离和不受任何限制的在任意的应用程序层使用。

    Transient Object and Collections
    持久类的实例,不与当前会话关联。他们可能已经通过应用程序实例化但是没有持久化,或者他们可能在关闭Session时被实例化。

    Transaction(NHibernate.ITransaction)
    (可选的)单线程,短生命周期对象。通过应用程序使用,详细指定工作单元。抽象至ADO.NET transaction.一个Session可以横跨在一些事件的几个Transactions。
    ConnectionProvider(NHibernate.Connection.ConnectionProvider)
    (可选的)一个ADO.NET connections工厂。抽象至IDbConnection.不暴露给应用。但是能够被开发者继承。

    TransactionFactory(net.sf.hibernate.TransactionFactory)
    (可选的)Transaction实例工厂。不暴露给应用,但是能够被开发者继承。

    假定一个"lite"架构,应用可以绕过Transation/Transaction,或者ConnectionProvider APIs去直接和ADO.NET会话。


     

  • 相关阅读:
    查看当前的数据和索引的总大小
    PXC安装
    [学习笔记]位运算
    PXC小结
    java算法集训代码填空题练习3
    mha配置参数详解
    [学习笔记]二分图
    Java 实现 蓝桥杯 等额本金
    账号权限问题导致 masterha_check_repl 检查失败
    [学习笔记]0/1分数规划
  • 原文地址:https://www.cnblogs.com/HuangLiang/p/716912.html
Copyright © 2020-2023  润新知