我設計一個C#應用程序設計分層應用與NHibernate和上下文更改數據庫
- 演示(網站+ Flex應用程序)
- 業務邏輯層(可能是WCF來實現多客戶端平臺)
- 數據訪問層(與NHibernate)
我們將我們的解決方案在許多preexistant客戶的數據庫environnements整合,我們想在DAL使用NHibernate的..中號y同事指出,使用NHibernate從客戶端數據庫(如User或Image)生成類會導致BLL在每次數據庫更改時炸燬我們的面孔! 所以問題是我們如何防止這種情況發生? 我們正在考慮創建業務對象,並使用AutoMapper將NHibernate對象映射到這些BO(嗡嗡聲,是否會使它們成爲DTO?),並防止dal更改影響BLL。是否要這樣走?
謝謝!
編輯:
爲了讓更好的理解我們正在努力實現的目標,你可能需要方面: 我們正在建設中的照片存儲/共享應用程序中的Flex前端和後端主要爲我們公司的C#,所以我們處理代碼和數據庫的各個方面。
但是:該產品也可以通過層購買,最終已經有一個數據庫與用戶表或圖像表。我想在這裏一個新的前景誰有一個圖像表幾百幾百萬行,併爲我們的業務邏輯添加列的是不會因爲表的時間過長的改變要發生的事情。
即使有可能(例如用戶表可以因爲較少的行而被修改),我們正在問自己如何處理表結構的變化,而不是每次我們必須集成到一個層時,都不會影響我們的所有解決方案數據庫,從BLL到Flex中的客戶端應用程序!
我喜歡這個答案。我看到了PL,BLL和DAL的說法,相反,這個答案涉及DDD。我希望在這方面看到更多的深度。 – blu 2010-10-02 01:46:25
我編輯了第一篇文章,給你更多的上下文。我認爲多表實體+自定義數據訪問是解決方案的一部分! – Breakdown 2010-10-02 11:27:21