我是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执行此操作,或者我必须在映射后执行此操作。
请给我看一些示例代码。
答案 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=> ""));