Nhibernate官方體系結構圖部分中文翻譯
阿新 • • 發佈:2018-10-25
lock nec 圖片 表現層 結構圖 ide info 命名約定 factory
原文鏈接 :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):
- 臨時對象(Transient Objects)及其集合(Collections):指的是沒有和一個ISession關聯的持久化類的實例對象。這些實例對象可能是剛剛被程序實例化,還沒有來得及被持久化,或者已經持久化但是關聯的ISession已經被關閉了。
- 事務 ITransaction (NHibernate.ITransaction):
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官方體系結構圖部分中文翻譯