How do I get AutoMapper to map this?

2019-04-01 23:27发布

问题:

Say I have this class:

public class Account
{
    public int AccountID { get; set; }
    public Enterprise Enterprise { get; set; }
    public List<User> UserList { get; set; }
}

When I use AutoMapper to map the Account class, I would also like it to map the Enterprise class, and the list of users (UserList) in the returned object. How can I get AutoMapper to do this?

Thanks!

回答1:

AutoMapper does that out of-the-box if you provide a configuration for the Enterprise and User type.

Configuration looks like this:

Mapper.CreateMap<Account, AccountDto>();
Mapper.CreateMap<Enterprise, EnterpriseDto>();
Mapper.CreateMap<User, UserDto>();

This shows how to how collections get mapped: http://automapper.codeplex.com/wikipage?title=Lists%20and%20Arrays&referringTitle=Home



回答2:

You need to create a mapping for each pair of types you would like mapped.

Mapper.CreateMap<Account, AccountDto>();
Mapper.CreateMap<Enterprise, EnterpriseDto>();
Mapper.CreateMap<User, UserDto>();

Order is not important.



标签: AutoMapper