我覺得我陷入了僵局。我有一個從頭開始使用FluentNHibernate(ORM)/ SQLite(文件db)構建的應用程序。我決定實施工作單元和存儲庫設計模式。我處於一個需要考慮最終遊戲的階段,該遊戲將以WPF Windows應用程序(使用MVVM)開始,並最終實現作爲UI的Web服務/ ASP.Net。FluentNHibernate工作單元/知識庫設計模式問題
現在我已經爲ORM創建了域對象(實體)。而現在我不知道如何在ORM之外使用它。關於它的問題包括:
- 我應該直接使用ORM實體對象作爲MVVM中的模型嗎?如果是,我是否在這些實體對象中放置了業務邏輯(例如某些值必須是正數,並且大於另一個屬性)?這當然是更簡單的方法,我現在正在傾斜。但是,是否會有一些垃圾郵件會破壞這個計劃?
- 如果上面的答案是否定的,那麼我會創建一組新的類來實現業務邏輯並將它們用作MVVM中的模型嗎?我將如何處理模型對象和實體對象之間的轉換?我想一個類型轉換器的實現將在這裏很好地工作。
我不知道AutoMapper,謝謝!有了它,創建單獨的ViewModel類並使用AutoMapper將其屬性映射到Entity類屬性是非常有意義的(並且非常有效)。簡單的扁平化可能會起作用(或小投影)。 我知道的第二部分很狡猾,並且需要有堅實的NHibernate/Unit of Work設計模式知識的人。如果你想刺激一下,我會很感激! – Echiban 2010-04-03 00:20:04
是的,我不太熟悉NHibernate告訴你如何最好地設置它。對於它的價值,我已經看到了很多不同的方式來設置ISessionFactory,ISession和ITransaction。就我個人而言,我喜歡直接與這些工作並將ISession傳入需要使用Inversion of Control容器的Repository類中。至於設置它,我會放棄FluentNHibernate文檔,因爲它非常精簡,並且不會增加工作層單元的複雜性。 – 2010-04-03 00:59:27
我向你推薦CodeCampServer(http://code.google.com/p/codecampserver/)。有一個很好的實現使用NHibernate,AutoMapper和IoC(StructureMap) – Rookian 2010-04-05 10:42:10