我有以下课程:
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)。列表中有四个用户实体应该映射。有人能告诉我可能出现的问题吗?
答案 0 :(得分:3)
尝试不传入accountDto,让AutoMapper为您创建它。当您映射到现有目标对象时,AutoMapper会做出一些假设,即您不会有任何已经为空的目标集合。相反,做:
var accountDto = Mapper.Map<DAL.Entities.Account, Entities.Account>(account);
您应该检查的最后一件事是您的配置有效,因此您可以尝试:
Mapper.AssertConfigurationIsValid();
在那些CreateMap调用之后。这会检查以确保所有内容在目标类型方面正确排列。