Первый раз покачивайте его с помощью NHibernate / Fluent, поэтому заранее извиняюсь, если это наивный вопрос. У меня есть набор моделей, которые я хочу отобразить. Когда я создаю свою фабрику сессий, я пытаюсь сделать все отображения одновременно. Я не использую автоматическое отображение (хотя могу, если то, что я пытаюсь сделать, окажется более болезненным, чем должно быть). Проблема, с которой я сталкиваюсь, заключается в том, что кажется, что берется только верхняя карта. Учитывая приведенный ниже фрагмент кода и выполнение модульного теста, который пытается сохранить 'bar', он завершается неудачно и проверяет журналы, которые, как я вижу, NHibernate пытается сохранить объект bar в таблицу foo. Хотя я подозреваю, что это мои отображения, это может быть что-то еще, что я просто пропускаю.
Код, который создает фабрику сеанса (обратите внимание, я также пробовал отдельные вызовы в .Mappings):
Fluently.Configure().Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c
.Server(@"localhost\SQLEXPRESS")
.Database("foo")
.Username("foo")
.Password("foo")))
.Mappings(m =>
{
m.FluentMappings.AddFromAssemblyOf<FooMap>()
.Conventions.Add(FluentNHibernate.Conventions.Helpers
.Table.Is(x => "foos"));
m.FluentMappings.AddFromAssemblyOf<BarMap>()
.Conventions.Add(FluentNHibernate.Conventions.Helpers
.Table.Is(x => "bars"));
})
.BuildSessionFactory();
Фрагмент юнит-теста:
using (var session = Data.SessionHelper.SessionFactory.OpenSession()) {
var bar = new Bar();
session.Save(bar);
Assert.NotNull(bar.Id);
}