2010-03-15 2 views
2

я следующий класс:AutoMapper Проблема - Список не Карта

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

И я следующий фрагмент метод:

Entities.Account accountDto = new Entities.Account(); 
DAL.Entities.Account account; 

Mapper.CreateMap<DAL.Entities.Account, Entities.Account>(); 
Mapper.CreateMap<DAL.Entities.User, Entities.User>(); 

account = DAL.Account.GetByPrimaryKey(this.Database, primaryKey, withChildren); 

Mapper.Map(account,accountDto); 
return accountDto; 

Когда вызывается метод, класс Account получает отображается правильно, но список пользователей в классе Account не является (это NULL). В списке есть четыре пользовательских объекта, которые должны отображаться. Может ли кто-нибудь сказать мне, что может быть неправильно?

ответ

3

Не пропустите в accountDto, и пусть AutoMapper создаст его для вас. Когда вы сопоставляете существующий объект назначения, AutoMapper делает несколько предположений, что у вас не будет уже уже нулевых цепей назначения для одного. Вместо этого, сделайте следующее:

var accountDto = Mapper.Map<DAL.Entities.Account, Entities.Account>(account); 

Последнее, что вы должны проверить, что ваша конфигурация допустима, так что вы можете попробовать:

Mapper.AssertConfigurationIsValid(); 

После этих CreateMap вызовов. Это проверяет, чтобы все правильно отображалось на стороне адресата.

Смежные вопросы