2010-07-19 43 views
1

我使用NHibernate進行持久化,並將我的域模型映射出來。我正在使用MVC2,並且我熱衷於使用內置模型驗證進行所有基本驗證(字符串長度,範圍等)。使用ViewModels,基於數據註解的驗證和域對象的最有效方式?

問題是我發現這裏涉及大量的工作。我有26個POCO類代表域。這意味着我需要大約5 x 26 = 130 ViewModels(一個用於創建,編輯,查看,列表,刪除),因爲我將在任何地方使用ViewModels。 130 ViewModels創建和維護考慮我已經映射出我的域對象似乎很浪費。

現在我已經意識到這是一種很好的開發方式,可以讓視圖儘可能地愚蠢,消除與視圖相關的安全失誤等等。說實話,我得到了強烈的印象,我錯過了一個可以加速這個過程的工具或技術。

有沒有辦法減輕這種痛苦?

回答

0

我不確定爲什麼你需要5個ViewModels?該還挺的ViewModels表示要(在視圖中)時顯示的內容:

比方說你有這些相關實體:

BlogArticle 
Tags 
CategoryName 

你有三個實體,而是從創建你寫的BlogArticle形式文章,選擇標籤,然後在一個頁面上選擇一個類別。

在你只想視圖模型下面的BlogArticle創建表單:

BlogArticleViewModel 
+string BlogTitle 
+string BlogContent 
+string TagName //could be mapped to textbox, checkbox 
+string CategoryName//same as above 

你可以使用http://automapper.codeplex.com到模型映射到的ViewModels。