我在我的应用层中定义了这个映射:
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;
}
Proffesion entity
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。我现在没有得到例外,但检索到的27个Profession实体的列表被映射到ProfessionDTO的0。
答案 0 :(得分:12)
我觉得很难回答我自己的问题。
我不需要这一行:
Mapper.CreateMap<IList<Profession>, IList<ProfessionDTO>>();
现在Auomapper完美无缺!
答案 1 :(得分:0)
您的专业课程中没有您的Id和Name属性的设置者。
答案 2 :(得分:0)
答案显示错误; 正确的应该是这样的;
Mapper.CreateMap<Profession, ProfessionDTO>();