我使用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