ASP.NET MVC - Отображение с помощью Automapper

Я сейчас пытаюсь понять, когда использовать ViewModels, а когда нет. Я ' m с помощью 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));
}

Мне интересно, не является ли это плохой практикой для отображения вот так, просто чтобы исключить некоторые свойства из модели предметной области? - И всегда ли мне использовать View Models, даже если они не нужны?

Заранее спасибо.

13
задан Nate 5 January 2011 в 19:25
поделиться