我必須使用Entity Framework 4.1和ASP.NET構建Web應用程序的體系結構。我已經有了數據庫結構,所以我必須使用數據庫的拳頭。我在這裏閱讀了很多文章和主題,但似乎我錯過了一些東西。我已決定以下列方式組織項目:使用Entity Framework 4和Repository Pattern的多層體系結構
我已經用Linq2Sql構建了一個Web應用程序。我用this project。它提供了一個T4模板,爲每個實體生成一個特定的靜態資源庫類。我喜歡這種方法,因爲它很容易向任何存儲庫添加額外的邏輯,例如GetUserByName()
。我喜歡這種方法,但目前爲止我還找不到EF4的類似方法。我發現只有通用的存儲庫,然後我必須手動創建具體的存儲庫。在這種情況下,我不喜歡的首先是我正在處理的應用程序有一些複雜的業務邏輯,所以我將不得不手動創建幾乎每個實體的具體存儲庫。其次,如果起初我使用通用資源庫來獲取所有實體,並且以後需要使用例如GetUserByName()
,那麼代碼中會出現不一致。我寧願所有的數據都是以相同的方式完成。
我要麼遺失了一些建築結構。
通用:通用信息庫,如果這裏有必要進行分隔
DAL:本EDMX(實體模型)與上下文類和庫
BLL文件:的業務邏輯系統
- 實體
- 服務
- 等
UI:ASP.NET頁面
問題:
是邏輯的分離是否正確?
我應該使用特定的存儲庫嗎?
什麼樣的存儲庫模式的實施,你會推薦最好的項目組織和易於使用?
使用靜態存儲庫更好嗎?
由於
在windows和web開發的沉重金融系統中擁有背景我到目前爲止只有很少的問題,爲什麼你認爲你的實體應該住在BLL中至今我的經驗是實體是非常基本的單元, 。 –
那時我還沒有做出最後的決定。我也想用EF生成它們並將它們放入DAL中。 – Thea
@泰迪 - 這些實體應該(可以)進入一個共同的「層」/裝配體,以便它們可以重新使用;這些與實體數據訪問專用的EF實體不同。 –