From 7da726e8544345f848fbb3c34d44266ba27222e6 Mon Sep 17 00:00:00 2001 From: Aaron Mell Date: Thu, 24 Jul 2014 17:33:27 -0500 Subject: [PATCH 1/2] Refactored DelegatingLocationSessionFactoryObject to support named connections This will fail if you attempt to use a named connection instead of a connection string. I modified the PostProcessConfiguration to set the connection string if one could be looked up via NHibernates connection_string_name --- .../DelegatingLocalSessionFactoryObject.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs index 03e68234..1542983e 100644 --- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs +++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs @@ -40,12 +40,20 @@ namespace Spring.Data.NHibernate protected override void PostProcessConfiguration(Configuration config) { // called before NewSessionFactory - if (!config.Properties.ContainsKey(Environment.ConnectionString)) - { - throw new System.ArgumentException("Must specify connection string"); - } + var settings = ConfigurationManager.ConnectionStrings[NHibernate.Cfg.Environment.ConnectionStringName]; + + if (settings != null) + { + config.Properties.Add(new KeyValuePair(NHibernate.Cfg.Environment.ConnectionString, settings.ConnectionString)); + } + + // called before NewSessionFactory + if (!config.Properties.ContainsKey(NHibernate.Cfg.Environment.ConnectionString)) + { + throw new System.ArgumentException("Must specify connection string. If connection_string_name is set to a value, make sure there exists a connection string with that name."); + } } } -} \ No newline at end of file +} From 66bf53684c137a7c53d989ed3dc072c1ae8c984a Mon Sep 17 00:00:00 2001 From: Aaron Mell Date: Thu, 24 Jul 2014 18:08:34 -0500 Subject: [PATCH 2/2] Fixed an issue with the refactoring --- .../DelegatingLocalSessionFactoryObject.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs index 1542983e..c559a151 100644 --- a/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs +++ b/src/Spring/Spring.Data.NHibernate/Data/NHibernate/DelegatingLocalSessionFactoryObject.cs @@ -40,18 +40,18 @@ namespace Spring.Data.NHibernate protected override void PostProcessConfiguration(Configuration config) { // called before NewSessionFactory - var settings = ConfigurationManager.ConnectionStrings[NHibernate.Cfg.Environment.ConnectionStringName]; + var settings = ConfigurationManager.ConnectionStrings[config.Properties[NHibernate.Cfg.Environment.ConnectionStringName]]; - if (settings != null) - { - config.Properties.Add(new KeyValuePair(NHibernate.Cfg.Environment.ConnectionString, settings.ConnectionString)); - } + if (settings != null) + { + config.Properties.Add(new KeyValuePair(NHibernate.Cfg.Environment.ConnectionString, settings.ConnectionString)); + } - // called before NewSessionFactory - if (!config.Properties.ContainsKey(NHibernate.Cfg.Environment.ConnectionString)) - { - throw new System.ArgumentException("Must specify connection string. If connection_string_name is set to a value, make sure there exists a connection string with that name."); - } + // called before NewSessionFactory + if (!config.Properties.ContainsKey(NHibernate.Cfg.Environment.ConnectionString)) + { + throw new System.ArgumentException("Must specify connection string. If connection_string_name is set to a value, make sure there exists a connection string with that name."); + } } }