AutoMapper问题 - 列表不会映射

时间:2010-03-15 01:02:33

标签: 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)。列表中有四个用户实体应该映射。有人能告诉我可能出现的问题吗?

1 个答案:

答案 0 :(得分:3)

尝试不传入accountDto,让AutoMapper为您创建它。当您映射到现有目标对象时,AutoMapper会做出一些假设,即您不会有任何已经为空的目标集合。相反,做:

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

您应该检查的最后一件事是您的配置有效,因此您可以尝试:

Mapper.AssertConfigurationIsValid();

在那些CreateMap调用之后。这会检查以确保所有内容在目标类型方面正确排列。