2012-02-29 171 views
0

我有一個有點問題的包裹我的頭周圍手頭的任務或更多這樣做是最好的辦法。映射實體NHibernate的Fluenty

取一個樣本項目:

  • UI
  • DATA(議會)
  • SERVICE(組件)內置到數據

難道我把所有的映射,在數據彙編或應我將它們分離到SERVICE組件中?或者應該/我可以完全擺脫數據組件?

這個問題由在任一DATA組件或應用組件,然後將其從所述服務組件等引用的具有的nHibernate靜態輔助類莖

項目引用方向

UI> DATA/UTILITY

DATA/UTILITY < SERVICES

UI> SERVICES

我只是讓這個過於複雜或做錯了/對嗎?

注:

我提到流利的,而我知道你可以使用config.xml中引用程序映射我不太清楚怎麼做,用流利的沒有實際參考項目組件 - 這讓我陷入循環參考循環中。

回答

0

如果您擔心您的物品(你的數據),你需要一個額外的組件,「數據訪問層」集會,引用您的數據組裝幷包含數據訪問的擔憂(的定義分離的映射代碼像你的NHibernate映射)。這樣,你的數據彙編只包含你的POCO,並且知道持久性。您的數據訪問程序集引用您的DATA程序集,並具有持久性知識。我會把你的NHibernate helper方法放在你的「UTILITY」程序集中,而不是把它們放在這個新的「數據訪問」程序集中。

這一切都這樣說,如果你不關心從它的持久性機制分離你的數據,你可以只轉儲數據彙編一切(映射和輔助功能)。

+0

我不是100%對你的解釋,我無法想象這是怎麼回事。也許我沒有正確解釋自己。我不打擾分離,但我認爲我應該是真的。目的是讓服務的邏輯使用DATA/DATA ACCESS程序集與數據庫進行交互。所以,如果我理解你,我應該把所有的映射和​​nHibernate的東西放在數據訪問程序集中。服務中不應該存在映射。這是正確的嗎? – Anthony 2012-02-29 17:30:32

+0

我想提:雖然我目前的項目不會有插件將來的可能。在這種情況下,校長會是一樣的;使用DATA ACCESS程序集與數據庫交互?如果是的話,映射如何管理,那麼考慮POCO將不會出現在數據訪問大會新表(如果添加)?對不起,混亂的情況下,我希望開始正常,並繼續相同,而不是找到我不得不重寫這一行。 – Anthony 2012-02-29 17:37:17

+0

我才意識到,如果我通過數據訪問組件暴露的Isession都不會有問題,我寫了波蘇斯將它。只要能夠達到ISession /當前會話,它就會打開數據庫。雖然我認爲這也許是它應該完成的方式? – Anthony 2012-02-29 17:47:24