Проблема с AutoMapper - список не отображается - PullRequest
2 голосов
/ 15 марта 2010

У меня есть следующий класс:

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). В списке есть четыре объекта пользователя, которые должны быть сопоставлены. Может кто-нибудь сказать мне, что может быть не так?

1 Ответ

3 голосов
/ 15 марта 2010

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

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

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

Mapper.AssertConfigurationIsValid();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...