0
所有功能NHibernate的事例,例如(或類似)電話:流利NHibernate的外部配置
c.AddMappingsFromAssembly(typeof(Product).Assembly);
我不想塗用「的typeof(產品).Assembly」,因爲我不希望有參考我的域名項目(「Procuct」課程)。在普通的NHibernate的,我只想創造的hbm.xml文件,並在web.config中輸入以下內容:
<mapping assembly="TestingFluentHN"/>
但此項不與FluentNHibernate工作。在我的會話建立方法中提供程序集是否有一種優雅的方式?最好從配置文件。
資源: 上下文有害代碼/依賴性:
static NHSessionManager()
{
Configuration c = new Configuration();
//change following to sth that does not need refernce to domain
c.AddMappingsFromAssembly(typeof(Product).Assembly);
c.Configure();
sessionFactory = c.BuildSessionFactory();
}
我的第一個想法是讀取的appSettings組件的名稱和加載它們:
var assembliesToMap = new List<string>();
foreach (var assemblyName in assembliesToMap)
{
var assembly = Assembly.LoadFile(assemblyName);
c.AddMappingsFromAssembly(assembly);
}
但是這是我的最後一個選項。我正在尋找流利的nhibernate。
嗯,我做了更多的研究,我查看了Sharp Architecure的代碼,看看人們是怎麼做到的,而且我還沒有找到web.config/app.config的方式。正如你寫的,我最終注入了一個接口,該接口有方法將所有帶有映射的程序集返回到我的核心項目中。關於你對整個想法的懷疑:): 有(和其他項目一樣)核心,和「我們的框架」(例如通用數據訪問的可重用部分 - 我想用於解決方案的項目)。 「我們的框架」涉及需要繪圖的NH,但這些核心是核心。 「out framework」當然不能依賴於Core。 – 2010-06-08 22:46:53
p.s.夏普建築師們以類似的方式來做這件事。項目依賴於尖銳的體系結構,通過映射傳遞程序集名稱數組。 - > NH是在尖銳的建築內,entites在項目中使用尖銳的拱門。感謝您的回覆。 – 2010-06-08 22:49:26
我想這就是你要找的東西 - 有時候你只是需要你想找的那個詞。真高興你做到了! – AlexCuse 2010-06-09 01:18:02