我使用EF與ViewModel和AutoMapper設計策略的MVC3應用程序。ASP.NET MVC3實體與ViewModel CRUD頁面
我想知道是否有更有效的方式創建CRUD頁面,然後我正在做什麼。
我目前的過程包括:
- 創建實體
- 創建視圖模型通過複製粘貼,然後刪除非必填字段
- 實體添加到上下文列表
- 創建通過控制器Visual Studio 2010創建控制器嚮導頁面。
- 我使用實體框架來選擇具有讀寫操作和視圖的控制器模板。
- 我選擇我的模型是我的ViewModel而不是我的實體。
- 我選擇適當的上下文。
- 現在部分我分手,我認爲可以提高,我不得不重新編寫所有的CRUD方法使用AutoMapper和實體/視圖模型設計模式發生變化:
return View(db.BlockedUserViewModels.ToList());
成:
IList<BlockedUser> blockedUsers = db.BlockedUsers.ToList();
IList<BlockedUserViewModel> blockedUserVMs = AutoMapper.Mapper.Map<IList<BlockedUser>, IList<BlockedUserViewModel>>(blockedUsers);
return View(blockedUserVMs);
- 我必須相同的[授權]和角色的權限添加到每個控制器CRUD選項。
這似乎過度的工作量!我希望有更好的解決方案。 (我來自Python/Django,它需要一行代碼來創建漂亮的強壯的CRUD頁面)
好點,我忽略了尋找一個包爲我提供這個簡單的解決方案。將這些實用方法置於上下文中是否合適?感謝關於控制器[授權]屬性的提示,不幸的是它們不一致。 – Valchris
這取決於你的實現。我將存儲庫模式與我的實體一起使用,以便他們管理CRUD操作,而我的服務只是將我的存儲庫映射到與其關聯的視圖模型相關的存儲庫的包裝器。 – shuniar
知道你的描述的教程/例子?我讀過一提有關資源庫的功能,但並不完全理解複雜 – Valchris