需要帮助使用AutoMapper将ViewModel映射到Entity

时间:2012-07-17 01:29:03

标签: automapper

我是automapper的新手。需要一些帮助才能从ViewModel映射到实体。

这是我的用户实体

public class User
{
    public int Id { get; set; }
    public string Firstname { get; set; }
    public string Lastname { get; set; }

    public DateTime CreatedDate { get; set; }
    public string DisplayName { get; set; }
}

这是我的ViewModel

public class UserViewModel
{

    public string Email { get; set; }
    public string Password { get; set; }
}

我创建了一张地图。它无法正常工作

        CreateMap<UserLoginViewModel, User>()
            .ForMember(dest=>dest.CreatedDate, DateTime.Now)
            .ForMember(dest=>dest.DisplayName, "");

DisplayName和CreatedDate是必填字段。因为它不在ViewModel中,所以我将使DisplayName =“”和CreateDate = datetime.now。

我想知道我是否可以使用automapper执行此操作,或者我必须在映射后执行此操作。

请给我看一些示例代码。

1 个答案:

答案 0 :(得分:2)

您提到您拥有UserViewModel视图模型和User实体,但您的映射配置包含第三种类型 - UserLoginViewModel。假设UserLoginViewModel与UserViewModel相同,您应该如下更改配置。

 Mapper.CreateMap<UserViewModel, User>()
        .ForMember(dest=>dest.CreatedDate, t=> t.MapFrom(s=> DateTime.Now))
        .ForMember(dest=>dest.DisplayName, t=> t.MapFrom(s=> ""));

AutoMapper wiki