我在应用程序层中定义了此映射:
public IList<ProfessionDTO> GetAllProfessions()
{
IList<Profession> professions = _professionRepository.GetAll();
Mapper.CreateMap<Profession, ProfessionDTO>();
Mapper.CreateMap<IList<Profession>, IList<ProfessionDTO>>();
IList<ProfessionDTO> professionsDto = Mapper.Map<IList<Profession>, IList<ProfessionDTO>>(professions);
return professionsDto;
}
专业实体
public class Profession
{
private int _id;
private string _name;
private Profession(){} // required by nHibernate
public Profession(int id, string name)
{
ParameterValidator.NotNull(id, "id is required.");
ParameterValidator.NotNull(name, "name is required.");
_id = id;
_name = name;
}
public string Name
{
get { return _name; }
}
public int Id
{
get { return _id; }
}
}
专业DTO:
public class ProfessionDTO
{
public int Id { get; set; }
public string Name { get; set; }
}
当执行 GetAllProfessions 时,出现此错误:
方法实现中的正文签名和声明不匹配。
知道为什么会这样吗?
我刚刚将所有IList更改为List。我现在没有异常(exception),但是检索到的27个行业实体列表被映射到ProfessionDTO的0。
最佳答案
我在回答自己的问题时感到很愚蠢。
我不需要这一行:
Mapper.CreateMap<IList<Profession>, IList<ProfessionDTO>>();
现在Auomapper可以完美运行!