AutoMapperMapping:缺少类型映射配置或不支持的映射
AutoMapperMapping: Missing type map configuration or unsupported mapping
我在过去 2 天尝试使用 aspnetboilerplate 创建简单的 INNER JOIN,但我m getting error that I really don
不知道如何处理。
我的意见是不知何故我需要在 ObjectMapper.Map
中添加两个 DTO
我的代码:
StudentDto
[AutoMap(typeof(Student))]
public class Student: EntityDto
{
public string Name { get; set; }
public int Last_Name{ get; set; }
public int City_Id { get; set; }
}
}
CityDto
[AutoMap(typeof(City))]
public class CityDto : EntityDto
{
public string Name{ get; set; }
public string Address{ get; set; }
}
StudentAppService.cs
private readonly IRepository<Student> _studentRepository;
private readonly IRepository<City> _cityRepository;
public StudentAppService(IRepository<Student> _studentRepository, IRepository<City> _cityRepository)
{
_studentRepository = studentRepository ;
_cityRepository = cityRepository ;
}
public List<StudentDto> GetStudentWithCityName()
{
var data = (from s in _studentRepository.GetAll() join c in _cityRepository.GetAll() on s.City_Id equals c.Id select new { name = s.Name }).ToList();
return ObjectMapper.Map<List<StudentDto>>(data);
}
当我构建应用程序并尝试使用 SWAGGER 执行 GET 操作时,出现此错误(带有我想要的数据值)
谁能帮我解决这个问题?
您确定道具 'Last_Name' 的数据类型是 'int' 吗?它不应该是一个字符串?
当您执行
"select new { name = s.Name }"
该对象不能是匿名的,它必须是一个存在并具有 AutoMap 属性的对象,才能映射它,或者您可以直接 select StudentDto 对象。
我在过去 2 天尝试使用 aspnetboilerplate 创建简单的 INNER JOIN,但我m getting error that I really don
不知道如何处理。
我的意见是不知何故我需要在 ObjectMapper.Map
我的代码:
StudentDto
[AutoMap(typeof(Student))]
public class Student: EntityDto
{
public string Name { get; set; }
public int Last_Name{ get; set; }
public int City_Id { get; set; }
}
}
CityDto
[AutoMap(typeof(City))]
public class CityDto : EntityDto
{
public string Name{ get; set; }
public string Address{ get; set; }
}
StudentAppService.cs
private readonly IRepository<Student> _studentRepository;
private readonly IRepository<City> _cityRepository;
public StudentAppService(IRepository<Student> _studentRepository, IRepository<City> _cityRepository)
{
_studentRepository = studentRepository ;
_cityRepository = cityRepository ;
}
public List<StudentDto> GetStudentWithCityName()
{
var data = (from s in _studentRepository.GetAll() join c in _cityRepository.GetAll() on s.City_Id equals c.Id select new { name = s.Name }).ToList();
return ObjectMapper.Map<List<StudentDto>>(data);
}
当我构建应用程序并尝试使用 SWAGGER 执行 GET 操作时,出现此错误(带有我想要的数据值)
谁能帮我解决这个问题?
您确定道具 'Last_Name' 的数据类型是 'int' 吗?它不应该是一个字符串?
当您执行
"select new { name = s.Name }"
该对象不能是匿名的,它必须是一个存在并具有 AutoMap 属性的对象,才能映射它,或者您可以直接 select StudentDto 对象。