2012-07-17 121 views
1

我是automapper的新手。需要一些幫助來從ViewModel映射到實體。需要幫助使用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來完成,或者我必須在映射之後完成。

請給我看一些示例代碼。

回答

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

+0

它的工作原理,這正是我所期待的。非常感謝 – qinking126 2012-07-17 14:03:36

相關問題