Недавно мы с коллегой делали бэкэнд для небольшого приложения, использующего Fluent NHibernate. Мы написали наши сущности, файлы сопоставления, диспетчер персистентности, но по какой-то причине мы не смогли экспортировать схему базы данных во что-либо.
Через отладчик мы обнаружили, что FluentMappings.AddFromAssemblyOf возвращал 0 отображений, даже если они явно присутствуют и четко корректны. Мы перепробовали все, что могли придумать, и нам пришлось добавить каждое сопоставление вручную.
Ниже приведен код, который не работал:
return Fluently.Configure().Database(
MsSqlConfiguration.MsSql2005
.ConnectionString(c => c
.TrustedConnection()
.Server("localhost")
.Database("LDTT")))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserMap>())
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
В то время как этот код работал:
return Fluently.Configure().Database(
MsSqlConfiguration.MsSql2005
.ConnectionString(c => c
.TrustedConnection()
.Server("localhost")
.Database("LDTT")))
.Mappings(m => m.FluentMappings.Add<ClientMap>())
.Mappings(m => m.FluentMappings.Add<ContactMap>())
.Mappings(m => m.FluentMappings.Add<DepartmentMap>())
.Mappings(m => m.FluentMappings.Add<DivisionMap>())
.Mappings(m => m.FluentMappings.Add<FileMap>())
.Mappings(m => m.FluentMappings.Add<FileTypeMap>())
.Mappings(m => m.FluentMappings.Add<RegionMap>())
.Mappings(m => m.FluentMappings.Add<TimeEntryMap>())
.Mappings(m => m.FluentMappings.Add<UserMap>())
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
Кто-нибудь знает, почему это происходит и как это исправить?