C# 在ViewModel中添加Id时出现自动映射异常
这是我在模型项目中的模型C# 在ViewModel中添加Id时出现自动映射异常,c#,api,automapper,C#,Api,Automapper,这是我在模型项目中的模型 public class CompanyName { public int Id { get; set; } public string Name { get; set; } public DateTime CreateDate { get; set; } public DateTime ModifyDate { get; set; } public ICollection<CarModel> CarModels {
public class CompanyName
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreateDate { get; set; }
public DateTime ModifyDate { get; set; }
public ICollection<CarModel> CarModels { get; set; }
public ICollection<CreateYear> CreateYear { get; set; }
public ICollection<Diversity> Diversities { get; set; }
public ICollection<CarPrice> CarPrices { get; set; }
}
这也是我在ViewModel项目中的p=映射代码
public class MiMapping:Profile
{
public MiMapping()
{
CreateMap<Task<CompanyName>, Task<CompanyNameVM>>().ReverseMap();
}
}
公共类映射:配置文件
{
公共映射()
{
CreateMap().ReverseMap();
}
}
在Api中使用它之后,我使用这个块
[Route("api/[controller]")]
[ApiController]
public class CompanyNameController : ControllerBase
{
private ICompanyNameRepository _companyNameRepository;
private IMapper _mapper;
public CompanyNameController(ICompanyNameRepository companyNameRepository,IMapper mapper)
{
_companyNameRepository = companyNameRepository;
_mapper = mapper;
}
[HttpGet]
public async Task<IActionResult> GetCarCompanyAsync()
{
var cmObj = await _companyNameRepository.GetAllAsync();
var cvvm = new List<CompanyNameVM>();
foreach (var obj in cmObj)
{
cvvm.Add(_mapper.Map<CompanyNameVM>(obj));
}
return Ok( cvvm);
}
}
[路由(“api/[控制器]”)]
[ApiController]
公共类公司名称控制器:ControllerBase
{
私有的ICompanyNameRepository\u companyNameRepository;
专用图像映射器;
public CompanyNameController(ICompanyNameRepository companyNameRepository,IMapper映射器)
{
_companyNameRepository=companyNameRepository;
_映射器=映射器;
}
[HttpGet]
公共异步任务GetCarCompanyAsync()
{
var cmObj=await_companyNameRepository.GetAllAsync();
var cvvm=新列表();
foreach(cmObj中的var obj)
{
添加(_mapper.Map(obj));
}
返回Ok(cvvm);
}
}
当我打电话给你时,你会跑吗-
http://localhost:53199/api/companyName
得到了这个错误
AutoMappingException:缺少类型映射配置或映射不受支持。
映射类型:
对象->公司名称虚拟机
System.Object->MI.ViewModel.CompanyNameVM
在我在ViewModel中添加Id之前,它工作得很好。
如果您想在
CompanyName
和CompanyNameVM
之间创建一个映射,那么如何解决这个问题-
CreateMap<CompanyName, CompanyNameVM>().ReverseMap();
我假设
\u companyNameRepository.GetAllAsync()
以某种形式返回IEnumerable
。谢谢,我的错误是在CreateMap()中添加了tsk。ReverseMap();
CreateMap<CompanyName, CompanyNameVM>().ReverseMap();
[HttpGet]
public async Task<IActionResult> GetCarCompanyAsync()
{
var cmObj = await _companyNameRepository.GetAllAsync();
var cvvm = _mapper.Map<IEnumerable<CompanyNameVM>>(cmObj);
return Ok(cvvm);
}