Check the InnerException, I imagine it's from NHibernate. The Database was not configured bit is just a suggestion as to why you might have got an exception.
On Wed, Aug 5, 2009 at 9:07 PM, ComradeF <[email protected]> wrote: > > Are you sure I don't have to specify a connection? > > If I call Fluently.Configure() with .Mappings() > and .BuildSessionFactory() but not .Database(), I get this exception: > > An invalid or incomplete configuration was used while creating a > SessionFactory. Check PotentialReasons collection, and InnerException > for more detail. > > * Database was not configured through Database method. > > > > > On Aug 5, 2:24 pm, James Gregory <[email protected]> wrote: > > 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 -~----------~----~----~----~------~----~------~--~---
