2011-03-10 45 views
0

我不能完全決定如何去分離我的視圖模型和我的數據庫模型。ASP.Net MVC如何從數據庫模型中分離視圖模型?

我爲我的數據庫訪問使用ActiveRecord模式。這意味着我爲數據庫中的每個用戶行獲取一個User類實例。

在的WebForms我已經習慣了使用這些作爲我的模型對象,在我的ActiveRecords實現大部分業務邏輯的直接。

我知道這是不完全的3層設計,我真的很想改善,那麼,尤其是在MVC,它的關注點分離的同情態度。

所以我認爲控制器不應該有訪問我的數據庫模型,但我怎麼然後去從數據庫中存儲/加載數據?

這不是我印象中你應該把一個巨大的商業邏輯的量在您的視圖模型要麼,所以我總覺得我缺少一箇中央一塊拼圖。

我正在尋找的是一些最佳實踐的建議,我想:-)

我希望這一切是有道理的,否則請詢問。

回答

2

我強烈建議在創建每個視圖一個視圖模型,並使用AutoMapper映射來自你的活動記錄到您的視圖模型的屬性。我不相信你的控制器可以訪問你的數據庫模型有問題;控制器應該負責將它們翻譯成視圖模型。

至於翻譯(真正發佈的數據模型)回到活動記錄,您可以使用AutoMapper該視圖模型以及簡單的情況下,和自定義代碼的其餘部分。

+0

聽起來像一個好主意:-) – Steffen 2011-03-11 08:00:09

相關問題