我想在流利的nhibernate中使用組件,並得到以下錯誤。如何使用流利的Nhibernate組件
FluentNHibernate.Cfg.FluentConfigurationException:創建SessionFactory時使用了無效或不完整的配置。請參閱PotentialReasons集合和InnerException以獲取更多詳細信息。
下面的代碼看起來是正確的還是我錯過了什麼?
下面是對象IM ttrying重用
public class Thickness
{
public string Name { get; set; }
public byte ThicknessSize { get; set; }
}
我在實體類中實現它,如下
public class Liner
{
public virtual int Id { get; set; }
public virtual Thickness Thickness { get; set; }
}
的地圖爲實體
public class LinerMap : ClassMap<Liner>
{
public LinerMap()
{
Table("Liner");
Id(l => l.Id);
Component(l => l.Thickness);
}
}
的配置看起來像下面
public static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c
.Server("XXXXX")
.Database("XXXXX")
.Username("XXXXXXXXXX")
.TrustedConnection()))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Liner>())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Thickness>())
.BuildSessionFactory();
}
我已經注意到,流暢的維基說,這個功能並不適用於自動映射,因此香港專業教育學院明確使用了.mapping方法的工作,但林不知道這是否是足夠
任何想法會感激地歡迎
GB
你看過InnerException(可能有其他的InnerExceptions)嗎?經常有線索埋在堆棧軌跡中。 – 2012-03-14 14:32:30
另外,可以描述Component方法的作用以及它來自哪個名稱空間。我沒有看到它列在[ClassMap](http://fluentnhibernate.org/api/FluentNHibernate.Mapping/ClassMap%601.htm)文檔中。 – 2012-03-19 12:46:54
由於您使用的是CLASSMAP,因此您丟失了自動映射。如果你想獲得自動映射,你需要使用OVERRIDES。 – BradLaney 2013-09-05 00:43:20