1

我是自动映射器的新手。需要一些帮助才能从 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; }
}

这是我的视图模型

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。

我想知道我是否可以使用自动映射器来做,或者我必须在映射后做。

请给我看一些示例代码。

4

1 回答 1

2

您提到您有 UserViewModel 视图模型和用户实体,但是您的映射配置包含第三种类型 - 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 维基

于 2012-07-17T05:47:13.670 回答