0
我是Automapper的新手,已经能够处理大多数映射错误(除了这个之外)。一些无效参数与Automapper构建错误映射
当我将CaseInfo实体映射到CaseInfoEdit视图模型时,我在我的(HTTPGET)Edit控制器方法中出现错误,该模型表示我在下面的代码行上有一些无效参数。
var vModel = Mapper.Map<CaseInfo, CaseInfoEditViewModel>(editCase);
这种映射问题开始后,我包含在此CaseInfoRepository.Get()语句返回检察长实体。该查询的CaseInfo结果将与Attorney参考对象正确返回。
var editCase = unitOfWork.CaseInfoRepository.Get(c => c.CaseInfoID == id, includeProperties: "Attorney");
该视图模型有一个外键AttorneyId和一个Attorney引用属性,这就是为什么映射失败我相信。 CaseInfo实体和CaseInfoViewModel都完全一样。
public class CaseInfoEditViewModel
{
public int CaseInfoID { get; set; }
// a bunch of property sets and gets ...
public int AttorneyId { get; set; }
public virtual Attorney Attorney { get; set; }
在尝试更正映射时,我添加了一个ForMember将源和目标设置为Attorney引用属性,这对映射问题没有帮助。任何帮助正确的方式来映射引用属性将不胜感激。
Mapper.CreateMap<CaseInfoEditViewModel, CaseInfo>()
.ForMember(dst => dst.AttorneyId, opt => opt.MapFrom(src => src.AttorneyId))
.ForMember(dst => dst.Attorney, opt => opt.MapFrom(src => src.Attorney))
.ForMember(dst => dst.CaseInfoID, opt => opt.Ignore());