我正在用C#winforms做一個項目。這個項目是由組成:爲多項目解決方案配置nHibernate
alt text http://img139.imageshack.us/img139/2540/esquemaw.png
- Client項目: Windows窗體,其中用戶將調用CRUD操作;
- 服務器項目;
- 共同項目:該項目將舉行模型(在圖像中只有模型項目);
- ListSingleton項目:遠程對象,將執行模型上的操作;
林試圖用一個3層式,其中客戶端和服務器將是觀點層,所述LISTSINGLETON將是控制器層(其中被創建的所有對象),以及共同的項目是模型層 ...
我已經有了所有的通信工作,但現在我需要在mysql數據庫中處理數據的持久性。我正在嘗試使用nHibernate,但我遇到了一些麻煩。
我的主要問題是如何組織我的休眠配置。 - 我在哪個項目中保存映射?共同的項目?
在哪個項目中保留hibernate配置文件(App.config)? ListSingleton項目?
在哪個項目我這樣做:
Configuration cfg = new Configuration(); cfg.AddXmlFile("Item.hbm.xml"); ISessionFactory factory = cfg.BuildSessionFactory(); ISession session = factory.OpenSession(); ITransaction transaction = session.BeginTransaction(); Item newItem = new Item("BLAA"); // Tell NHibernate that this object should be saved session.Save(newItem); // commit all of the changes to the DB and close the ISession transaction.Commit(); session.Close();
在ListSingleton項目?本書雖然我曾在我一直在addXml線得到錯誤的ListSingleton參照共同的項目...
- 當我有2個項目,一個與模型&映射而另一種病使用Hibernate(此項目有模型項目的參考),我該如何做「cfg.AddXmlFile(」User.hbm.xml「);」我一直在創建「無法從文件User.hbm.xml配置數據存儲」當我使用這2個項目結構。
我的映射是正確的,因爲我想用一個項目解決方案,它的工作:X
+1我想堅持ISessionFactory,它必須是整個應用程序中的一個單例,因爲實例化的代價非常高。 – 2010-03-16 14:01:23
我試圖使用3層風格,其中客戶端和服務器將**視圖層**,listSingleton將**控制器層**(其中所有對象都創建),並且通用項目是** models layer ** ...因此,有了這些新信息,您認爲我應該保留配置文件並創建Session @ Client? PS:對不起,我忘了將此信息添加到問題中... – Canastro 2010-03-16 14:16:19
我不知道,我從來沒有做過這樣的事情。我會在負責分發ISessions的層中執行此操作。 ISession是可序列化的,因此您可以在客戶端或控制器中執行此操作。 – 2010-03-16 15:36:11