You don't have to specify a database connection, but I'm not sure how you'd
construct the session factory without it. I'm pretty sure NHibernate itself
doesn't like it.

On Wed, Aug 5, 2009 at 8:22 PM, ComradeF <[email protected]> wrote:

>
> This post evolved from another thread that started out asking a
> completely different question, but it evolved to this... so here's a
> new thread.
>
> From the NHibernate documentation:
>
> --------------------------------------------------------------
> 3.2. Obtaining an ISessionFactory
>
> When all mappings have been parsed by the Configuration, the
> application must obtain a factory for ISession instances. This factory
> is intended to be shared by all application threads:
>
> ISessionFactory sessions = cfg.BuildSessionFactory();
>
> However, NHibernate does allow your application to instantiate more
> than one ISessionFactory. This is useful if you are using more than
> one database.
>
> 3.3. User provided ADO.NET connection
>
> An ISessionFactory may open an ISession on a user-provided ADO.NET
> connection. This design choice frees the application to obtain ADO.NET
> connections wherever it pleases:
>
> IDbConnection conn = myApp.GetOpenConnection();
> ISession session = sessions.OpenSession(conn);
>
> // do some data access work
>
> The application must be careful not to open two concurrent ISessions
> on the same ADO.NET connection!
>
> 3.4. NHibernate provided ADO.NET connection
>
> Alternatively, you can have the ISessionFactory open connections for
> you. The ISessionFactory must be provided with ADO.NET connection
> properties in one of the following ways:
>
>   1. Pass an instance of IDictionary mapping property names to
> property values to Configuration.SetProperties().
>   2. Add the properties to a configuration section in the application
> configuration file. The section should be named nhibernate and its
> handler set to System.Configuration.NameValueSectionHandler.
>   3. Include <property> elements in a configuration section in the
> application configuration file. The section should be named hibernate-
> configuration and its handler set to
> NHibernate.Cfg.ConfigurationSectionHandler. The XML namespace of the
> section should be set to urn:nhibernate-configuration-2.0.
>   4. Include <property> elements in hibernate.cfg.xml (discussed
> later).
>
> If you take this approach, opening an ISession is as simple as:
>
> ISession session = sessions.OpenSession(); // open a new Session
> // do some data access work, an ADO.NET connection will be used on
> demand
> --------------------------------------------------------------
>
> I'd like to use the option described in 3.3 (manage my own connections
> so I don't have to keep making new Session Factories), but to call
> Fluently.Configure() at all, I've got to provide a database connection
> -- leading me to believe that FNH is forcing the option described in
> 3.4 (NHibernate receives connection information and then uses it from
> that point on such that OpenSession() is handled for me).
>
> Is there a way for me to do this such that I don't have to create a
> Session Factory each time I want to start a dialogue with a database?
> In other words, can I Fluently.Configure() without database connection
> information, and just handle the connections on-the-fly per Session?
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to