Asp.net mvc 4 某些无效参数使用Automapper生成错误映射
我是Automapper的新手,在过去,除了这一次,我能够处理大多数映射错误 当我将CaseInfo实体映射到CaseInfoEdit视图模型时,我的(HTTPGET)Edit controller方法中出现了一个错误,该模型表示我在下面的代码行中有一些无效参数Asp.net mvc 4 某些无效参数使用Automapper生成错误映射,asp.net-mvc-4,automapper,Asp.net Mvc 4,Automapper,我是Automapper的新手,在过去,除了这一次,我能够处理大多数映射错误 当我将CaseInfo实体映射到CaseInfoEdit视图模型时,我的(HTTPGET)Edit controller方法中出现了一个错误,该模型表示我在下面的代码行中有一些无效参数 var vModel = Mapper.Map<CaseInfo, CaseInfoEditViewModel>(editCase); 视图模型有一个外键AttorneyId和一个attorneyReference属性,我
var vModel = Mapper.Map<CaseInfo, CaseInfoEditViewModel>(editCase);
视图模型有一个外键AttorneyId和一个attorneyReference属性,我相信这就是映射失败的原因。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; }
为了纠正映射,我添加了一个FormMember,将源和目标设置为代理引用属性,这对映射问题没有帮助。如果您能以正确的方式映射参考属性,我们将不胜感激
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());
Mapper.CreateMap()
.ForMember(dst=>dst.AttorneyId,opt=>opt.MapFrom(src=>src.AttorneyId))
.ForMember(dst=>dst.decorney,opt=>opt.MapFrom(src=>src.decorney))
.ForMember(dst=>dst.CaseInfoID,opt=>opt.Ignore());
我已经找到了问题所在,问题不在于我如何在CreateMap中映射律师成员,因为它是正确的。get语句返回的IEnumerable列表不正确。我改变了这样查询数据的方式,它返回一个实体,映射问题得到了纠正
var editCase = unitOfWork.CaseInfoRepository.GetByID(id);
var editCase = unitOfWork.CaseInfoRepository.GetByID(id);