我目前正試圖弄清楚何時使用ViewModels以及何時不使用ViewModels。我使用Automapper的任務,目前有以下代碼:ASP.NET MVC - 使用Automapper進行映射
// AccountController.cs
[AuthWhereRole(Roles = AuthorizeRole.Developer)]
public ActionResult List()
{
MembershipUserCollection users = _memberShipService.GetAllUsers();
IEnumerable<ListUsersViewModel> viewModel =
Mapper.Map<IEnumerable<MembershipUser>, IEnumerable<ListUsersViewModel>>(users.Cast<MembershipUser>().AsEnumerable());
return View("List", viewModel);
}
// ListUsersViewModel.cs
public class ListUsersViewModel
{
public Guid Id { get; set; }
public virtual string UserName { get; set; }
public string LastLogOn { get; set; }
}
// Bootstrapper.cs
public static void ConfigureAutoMapper()
{
Mapper.CreateMap<MembershipUser, ListUsersViewModel>()
.ForMember(x => x.UserName, o => o.MapFrom(s => s.UserName))
.ForMember(x => x.Id, o => o.MapFrom(s => s.ProviderUserKey))
.ForMember(x => x.LastLogOn, o => o.MapFrom(s => s.LastLoginDate));
}
我不知道它是不好的做法是否映射像這只是排除在t一些屬性他的領域模型? - 我應該總是使用視圖模型,即使不需要?
在此先感謝。
這與我自己的經驗非常相似。 – adamjford 2011-01-05 19:34:37