Не удается добавить сопоставления из сборки - PullRequest
1 голос
/ 11 июля 2011

Я борюсь с настройкой отображений Fluent с помощью NHibernate в проекте.С рабочим проектом для копирования - у меня все еще нет никаких сопоставлений, и, следовательно, исключение FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.

Никаких подсказок ни в PotentialReasons, ни в InnerException, как я понял ...

IМы использовали предложенные вызовы методов из документации Fluent и разбили их только на строки, чтобы иметь возможность отладки.Вызов BuildSessionFactory завершается неудачно, и в предыдущем вызове не экспортируются файлы xml.

Чего мне не хватает?Есть идеи или предложения?С каждой минутой становится больше седых волос ...

Все эти классы живут в одной сборке, в разных пространствах имен.

Класс SessionFactoryCreator: (часть)

var a = Fluently.Configure();

var cs = MsSqlConfiguration.MsSql2005
    .ConnectionString(c => c.FromConnectionStringWithKey("AlarmDataDb"));

var b = a.Database(cs);

var d = b.Mappings(x => x.FluentMappings.AddFromAssemblyOf<Mappings.AlarmData>()
                                .ExportTo(@"C:\"));

var e = d.BuildSessionFactory();
_sessionFactory = e;

Класс отображения:

public class AlarmData : ClassMap<AlarmTemp>
{
    public AlarmData()
    {
        Table("PublishOperationMessage");
        Id(s => s.OperationMessageId, "OperationMessageId");

    }
}

Класс DTO:

public class AlarmTemp : Base
{
    public virtual int OperationMessageId { get; private set; }

}

РЕДАКТИРОВАТЬ

Stacktrace самого внутреннего исключения (некоторые слова на шведском, но вы получите его):

vid FluentNHibernate.MappingModel.TypeReference..ctor(Type type)\r\n vid FluentNHibernate.Mapping.IdentityPart.FluentNHibernate.Mapping.Providers.IIdentityMappingProvider.GetIdentityMapping()\r\n vid FluentNHibernate.Mapping.ClassMap1.FluentNHibernate.IMappingProvider.GetClassMapping()\r\n vid FluentNHibernate.PersistenceModel.BuildSeparateMappings(Action1 add)\r\n vid FluentNHibernate.PersistenceModel.BuildMappings()\r\n vid FluentNHibernate.PersistenceModel.EnsureMappingsBuilt()\r\n vid FluentNHibernate.PersistenceModel.WriteMappingsTo(Func2 writerBuilder, Boolean shouldDispose)\r\n vid FluentNHibernate.PersistenceModel.WriteMappingsTo(String folder)\r\n vid FluentNHibernate.Cfg.FluentMappingsContainer.Apply(Configuration cfg)\r\n vid FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration cfg)\r\n vid FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Хорошо, это так странно. Я погуглил сообщение трассировки стека и оказался на этой странице:

http://geekswithblogs.net/rupreet/archive/2005/12/21/63740.aspx

Итак, отчаянно пытаясь что-либо сделать, я вышел из VS, удалил папки bin, перезапустил VS и собрал. Угадайте, что - это работает сейчас. : -)

0 голосов
/ 12 июля 2011

Вы должны иметь конструктор по умолчанию в AlarmTemp .

...