如果這是一個天真的問題,首次使用NHibernate/Fluent搖擺它,所以提前道歉。我有一套我想要映射的模型。當我創建會話工廠時,我試圖一次完成所有映射。我沒有使用自動映射(儘管如果我正在嘗試做的事情最終會變得比它應該更痛苦)。我遇到的問題是,似乎只有頂級地圖正在採取。給定下面的代碼片段並運行一個試圖保存'bar'的單元測試,它會失敗並檢查我看到的日誌NHibernate試圖將一個bar實體保存到foo表中。雖然我懷疑這是我的映射,但它可能是我簡單忽略的其他東西。創建會話工廠如何使用FluentHibernate配置多個映射?
代碼(注意我也試過單獨調用到.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);
}
我想盡可能多,謝謝,這有助於。 – 2010-03-25 18:07:05