Skip to content

Commit 0736725

Browse files
Update reference documentation to 5.0
1 parent 128601c commit 0736725

34 files changed

+4910
-3198
lines changed

doc/nh/en/index.html

Lines changed: 2426 additions & 1482 deletions
Large diffs are not rendered by default.

doc/nh/en/nhibernate.reference.chm

140 Bytes
Binary file not shown.

doc/nh/en/nhibernate_reference.pdf

3.03 KB
Binary file not shown.

doc/nhibernate-reference/architecture.html

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
---
2-
layout:
3-
---
41
<html><head>
5-
<meta charset="utf-8">
6-
<meta name="viewport" content="width=device-width, initial-scale=1" />
7-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
8-
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
9-
<title>Chapter&nbsp;2.&nbsp;Architecture</title><link rel="stylesheet" href="../shared/css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="NHibernate - Relational Persistence for Idiomatic .NET"><link rel="up" href="index.html" title="NHibernate - Relational Persistence for Idiomatic .NET"><link rel="previous" href="quickstart.html" title="Chapter&nbsp;1.&nbsp;Quickstart with IIS and Microsoft SQL Server"><link rel="next" href="session-configuration.html" title="Chapter&nbsp;3.&nbsp;ISessionFactory Configuration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;2.&nbsp;Architecture</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="quickstart.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="session-configuration.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="architecture"></a>Chapter&nbsp;2.&nbsp;Architecture</h2></div></div><div></div></div>{% include google_adsense.html %}<div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="architecture-overview"></a>2.1.&nbsp;Overview</h2></div></div><div></div></div><p>
2+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
3+
<title>Chapter&nbsp;2.&nbsp;Architecture</title><link rel="stylesheet" href="../shared/css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="NHibernate - Relational Persistence for Idiomatic .NET"><link rel="up" href="index.html" title="NHibernate - Relational Persistence for Idiomatic .NET"><link rel="previous" href="quickstart.html" title="Chapter&nbsp;1.&nbsp;Quick-start with IIS and Microsoft SQL Server"><link rel="next" href="session-configuration.html" title="Chapter&nbsp;3.&nbsp;ISessionFactory Configuration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;2.&nbsp;Architecture</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="quickstart.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="session-configuration.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="architecture"></a>Chapter&nbsp;2.&nbsp;Architecture</h2></div></div><div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="architecture-overview"></a>2.1.&nbsp;Overview</h2></div></div><div></div></div><p>
104
A (very) high-level view of the NHibernate architecture:
115
</p><div class="mediaobject" align="center"><img src="../shared/images/overview.png" align="middle"></div><p>
126
This diagram shows NHibernate using the database and configuration data to
@@ -21,7 +15,7 @@
2115
The "full cream" architecture abstracts the application away from the
2216
underlying ADO.NET APIs and lets NHibernate take care of the details.
2317
</p><div class="mediaobject" align="center"><img src="../shared/images/fullcream.png" align="middle"></div><p>
24-
Heres some definitions of the objects in the diagrams:
18+
Here are some definitions of the objects in the diagrams:
2519

2620
</p><div class="variablelist"><dl><dt><span class="term">ISessionFactory (<tt class="literal">NHibernate.ISessionFactory</tt>)</span></dt><dd><p>
2721
A threadsafe (immutable) cache of compiled mappings for a single database.
@@ -51,11 +45,12 @@
5145
(Optional) A single-threaded, short-lived object used by the application to
5246
specify atomic units of work. Abstracts application from underlying ADO.NET
5347
transaction. An <tt class="literal">ISession</tt> might span several
54-
<tt class="literal">ITransaction</tt>s in some cases.
48+
<tt class="literal">ITransaction</tt>s in some cases. Transaction scopes may be used
49+
instead.
5550
</p></dd><dt><span class="term">IConnectionProvider (<tt class="literal">NHibernate.Connection.IConnectionProvider</tt>)</span></dt><dd><p>
5651
(Optional) A factory for ADO.NET connections and commands. Abstracts application
57-
from the concrete vendor-specific implementations of <tt class="literal">IDbConnection</tt>
58-
and <tt class="literal">IDbCommand</tt>. Not exposed to application, but can be
52+
from the concrete vendor-specific implementations of <tt class="literal">DbConnection</tt>
53+
and <tt class="literal">DbCommand</tt>. Not exposed to application, but can be
5954
extended/implemented by the developer.
6055
</p></dd><dt><span class="term">IDriver (<tt class="literal">NHibernate.Driver.IDriver</tt>)</span></dt><dd><p>
6156
(Optional) An interface encapsulating differences between ADO.NET providers, such
@@ -88,7 +83,7 @@
8883
The instance was once associated with a persistence
8984
context, but that context was closed, or the instance
9085
was serialized to another process. It has a persistent
91-
identity and, perhaps, a corrsponding row in the database.
86+
identity and, perhaps, a corresponding row in the database.
9287
For detached instances, NHibernate makes no guarantees
9388
about the relationship between persistent identity and
9489
CLR identity.
@@ -101,7 +96,7 @@
10196
Starting with version 1.2, NHibernate added the <tt class="literal">ISessionFactory.GetCurrentSession()</tt>
10297
method. The processing behind <tt class="literal">ISessionFactory.GetCurrentSession()</tt> is pluggable.
10398
An extension interface (<tt class="literal">NHibernate.Context.ICurrentSessionContext</tt>) and a new
104-
configuration parameter (<tt class="literal">hibernate.current_session_context_class</tt>) have been added
99+
configuration parameter (<tt class="literal">current_session_context_class</tt>) have been added
105100
to allow pluggability of the scope and context of defining current sessions.
106101
</p><p>
107102
See the API documentation for the <tt class="literal">NHibernate.Context.ICurrentSessionContext</tt>
@@ -110,36 +105,44 @@
110105
tracking the current contextual session. Out-of-the-box, NHibernate comes with several
111106
implementations of this interface:
112107
</p><div class="itemizedlist"><ul type="disc"><li><p>
108+
<tt class="literal">NHibernate.Context.AsyncLocalSessionContext</tt> - current sessions are tracked
109+
by current asynchronous flow. You are responsible to bind and unbind an
110+
<tt class="literal">ISession</tt> instance with static methods of class
111+
<tt class="literal">CurrentSessionContext</tt>. Binding operations from inner flows will not be
112+
propagated to outer or siblings flows. Added in NHibernate 5.0.
113+
</p></li><li><p>
113114
<tt class="literal">NHibernate.Context.CallSessionContext</tt> - current sessions are tracked
114-
by <tt class="literal">CallContext</tt>. You are responsible to bind and unbind an <tt class="literal">
115-
ISession</tt> instance with static methods of class <tt class="literal">CurrentSessionContext
116-
</tt>.
115+
by <tt class="literal">CallContext</tt>. You are responsible to bind and unbind an
116+
<tt class="literal">ISession</tt> instance with static methods of class
117+
<tt class="literal">CurrentSessionContext</tt>.
117118
</p></li><li><p>
118119
<tt class="literal">NHibernate.Context.ThreadStaticSessionContext</tt> - current session is
119-
stored in a thread-static variable. This context only supports one session factory.
120+
stored in a thread-static variable. This context supports multiple session factory only
121+
since NHibernate v5.
120122
You are responsible to bind and unbind an <tt class="literal">ISession</tt> instance with
121123
static methods of class <tt class="literal">CurrentSessionContext</tt>.
122124
</p></li><li><p>
123-
<tt class="literal">NHibernate.Context.WebSessionContext</tt> -
124-
stores the current session in <tt class="literal">HttpContext</tt>.
125-
You are responsible to bind and unbind an <tt class="literal">ISession</tt>
126-
instance with static methods of class <tt class="literal">CurrentSessionContext</tt>.
125+
<tt class="literal">NHibernate.Context.WebSessionContext</tt> -
126+
stores the current session in <tt class="literal">HttpContext</tt>.
127+
You are responsible to bind and unbind an <tt class="literal">ISession</tt>
128+
instance with static methods of class <tt class="literal">CurrentSessionContext</tt>.
127129
</p></li><li><p>
128130
<tt class="literal">NHibernate.Context.WcfOperationSessionContext</tt> - current sessions are tracked
129131
by WCF <tt class="literal">OperationContext</tt>. You need to register the <tt class="literal">WcfStateExtension</tt>
130-
extension in WCF. You are responsible to bind and unbind an <tt class="literal">ISession
131-
</tt> instance with static methods of class <tt class="literal">CurrentSessionContext</tt>.
132+
extension in WCF. You are responsible to bind and unbind an <tt class="literal">ISession</tt>
133+
instance with static methods of class <tt class="literal">CurrentSessionContext</tt>.
132134
</p></li><li><p>
133135
<tt class="literal">NHibernate.Context.ManagedWebSessionContext</tt> - current
134-
sessions are tracked by <tt class="literal">HttpContext</tt>. Removed in NHibernate 4.0
135-
- <tt class="literal">NHibernate.Context.WebSessionContext</tt> should be used instead.
136-
You are responsible to bind and unbind an <tt class="literal">ISession</tt> instance with static methods
136+
sessions are tracked by <tt class="literal">HttpContext</tt>. Removed in NHibernate 4.0
137+
- <tt class="literal">NHibernate.Context.WebSessionContext</tt> should be used instead.
138+
You are responsible to bind and unbind an <tt class="literal">ISession</tt> instance with static methods
137139
on this class, it never opens, flushes, or closes an <tt class="literal">ISession</tt> itself.
138140
</p></li></ul></div><p>
139-
The <tt class="literal">hibernate.current_session_context_class</tt> configuration parameter
141+
The <tt class="literal">current_session_context_class</tt> configuration parameter
140142
defines which <tt class="literal">NHibernate.Context.ICurrentSessionContext</tt> implementation
141143
should be used. Typically, the value of this parameter would just name the implementation
142144
class to use (including the assembly name); for the out-of-the-box implementations, however,
143-
there are corresponding short names: "call", "thread_static", "web" and "wcf_operation",
145+
there are corresponding short names: <tt class="literal">async_local</tt>, <tt class="literal">call</tt>,
146+
<tt class="literal">thread_static</tt>, <tt class="literal">web</tt> and <tt class="literal">wcf_operation</tt>,
144147
respectively.
145-
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="quickstart.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="session-configuration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;1.&nbsp;Quickstart with IIS and Microsoft SQL Server&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;3.&nbsp;ISessionFactory Configuration</td></tr></table></div>{% include google_analytics.html %}{% include metrika_yandex_ru.html %}</body></html>
148+
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="quickstart.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="session-configuration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;1.&nbsp;Quick-start with IIS and Microsoft SQL Server&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;3.&nbsp;ISessionFactory Configuration</td></tr></table></div></body></html>

0 commit comments

Comments
 (0)