我正在为MVC3应用程序使用EF和ViewModel以及AutoMapper设计策略。
我想知道是否有更有效的方法来创建CRUD页面然后我正在做的事情。
我当前的流程涉及:
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);
这似乎在工作量方面有点过分!我希望有更好的解决方案。 (我来自Python / Django,需要一行代码来创建漂亮的强大CRUD页面)
答案 0 :(得分:2)
听起来您可以添加服务并将其注入控制器。那你只需要打电话
var model = _service.GetBlockedUsers();
每次都代替:
IList<BlockedUser> blockedUsers = db.BlockedUsers.ToList();
IList<BlockedUserViewModel> blockedUserVMs = AutoMapper.Mapper.Map<IList<BlockedUser>, IList<BlockedUserViewModel>>(blockedUsers);
这将使您的控制器保持轻盈,并充当保持您的crud逻辑的地方,因此您无需在任何地方重复它。
此外,如果控制器中的每个操作都适用,您可以将[Authorize]
属性添加到控制器中。
答案 1 :(得分:1)
这实际上取决于这对你有多痛苦,但你总是可以使用Nuget中发现并由Steven Sanderson编写的MVC脚手架。从长远来看,投入一些时间可以帮助你,但你必须弄清楚它是否适合你。