2011-07-17 13 views
1

我有三個項目一個ASP.NET MVC溶液:對在DB的每個對象在表示層中爲來自DAL的實體建模的最佳方式?

  1. SquarkMVC
  2. SquarkBLL
  3. SquarkDAL

的SquarkDAL層具有LINQ2SQL類。 BLL引用DAL以便在數據庫上執行業務邏輯。

我的問題是這樣的......無需在MVC層中引用DAL,我應該如何在MVC層中建模DB的實體?例如,如果我在MVC層中註冊了一個表單,那麼採用這些信息的最佳方式是什麼?將它傳遞給業務層,然後將其傳遞給數據層?我不希望MVC層知道有關DAL的任何信息。

我找到了this answer on another post ......它是否普遍認爲克服這個問題的最好方法是創建一個傳輸對象,以便將信息從表示層傳遞到業​​務層,然後將業務層信息導入DAL使用的實體類中?

希望這是有道理的。

回答

0

使用對象是執行此操作的常用方法。通常,DTO(數據傳輸對象)是「啞」的POCO,它具有一組屬性,並且像「結構」一樣,但是如果你將驗證和更多邏輯放在視圖邏輯上,那麼你有一個視圖模型和你可以使用它們與控制器一起工作。這個應該使用模型(業務層)。

更多地,業務層不應該有對DAL的引用,因爲您的業務模型應該獨立於存儲。 相反,數據訪問層應引用模型,並選擇持久性的正確方法。您可以使用Repository模式實現它。

無論如何,有很多關於域驅動設計的書籍。

相關問題