FluentNHibernate. MissingConstructorException при создании SessionFactory

Я пытаюсь бегло настроить SessionFactory для доступа к базе данных Oracle9i, с помощью ODP.Net, и я получаю этот MissingConstructorException. У меня есть фактические быстрые отображения, в которых разбираются хорошо, но я не уверен, чем еще случается так, что я сделал неправильно.

Вот исключение:

BasicConnectionTests.AssertThatWeCanConnectToADatabase : 

FailedFluentNHibernate.MissingConstructorException: 'FluentNHibernate.Automapping.IAutoClasslike, FluentNHibernate, Version=1.1.0.685, Culture=neutral, PublicKeyToken=8aa435e3cb308880' is missing a parameterless constructor.
at FluentNHibernate.Utils.Extensions.InstantiateUsingParameterlessConstructor(Type type)
at FluentNHibernate.PersistenceModel.Add(Type type)
at FluentNHibernate.Utils.CollectionExtensions.Each<T>(IEnumerable`1 enumerable, Action`1 each)
at FluentNHibernate.PersistenceModel.AddMappingsFromSource(ITypeSource source)
at FluentNHibernate.Cfg.FluentMappingsContainer.Apply(Configuration cfg)
at FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration cfg)
at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration() 
FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.


at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()
at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() 
FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.


at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
at MyAwesomeApp.sessionFactories.Oracle9SessionFactoryWrapper.Configure(String userName, String passWord, String dataBase) in Oracle9SessionFactoryWrapper.cs: line 26
at MyAwesomeApp.Tests.oracle.BasicConnectionTests.AssertThatWeCanConnectToADatabase() in BasicConnectionTests.cs: line 17

Вот быстрое отображение:

public ISessionFactory Configure(string userName, string passWord, string dataBase)
        {
            var config = Fluently.Configure();

            config.Database(
                OracleDataClientConfiguration.Oracle9
                    .ConnectionString(cs => cs.Username(userName).Password(passWord).Instance(dataBase))
                    .Driver("NHibernate.Driver.OracleDataClientDriver")
#if DEBUG
                    .ShowSql()
#endif
                );

            config.Mappings(
                m => m.FluentMappings.AddFromAssembly(Assembly.GetCallingAssembly()));

            return config.BuildSessionFactory();
        }

Если кто-либо может указать, где я иду не так, как надо, я был бы крайне признательным.

1
задан Stuart Grassie 12 July 2010 в 07:33
поделиться

1 ответ

Как указал Джеймс Грегори в своем комментарии к моему вопросу, я поступил очень глупо, сообщив Fluent, что у меня есть сопоставления.

Когда код выполнялся из контекста модульного теста, m => m.FluentMappings.AddFromAssembly(Assembly.GetCallingAssembly()) пытался сказать Fluent искать маппинги в сборке модульного теста - что привело к неудаче.

Ответ заключается в использовании m => m.FluentMappings.AddFromAssemblyOf(), где Foo - это тип в сборке, где находятся маппинги.

2
ответ дан 2 September 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: