我有EF EF生成的具有多个属性的Person类。我也有一个类与几个属性的职业。一个人与多个工作有关,因此乔布斯是人的收集财产。使用AutoMapper将复杂视图模型映射回具有集合属性的模型
我创建了一个视图模型为这样:
public class PersonViewModel
{
public Person Person{ get; set; }
public List<Job> Jobs{ get; set; }
}
从我的观点,我张贴PersonViewModel的一个实例。我想使用AutoMapper将这个视图模型映射回Person的一个实例,其Jobs集合属性填充了视图模型中的列表。
这可以完成吗?到目前为止,我曾尝试:
Mapper.CreateMap<PersonViewModel, Person>();
,没有运气...
编辑:
OK,这样做实际工作。我发现我在其他地方有一个问题...
我的Person对象也与PersonType表有一对多关系... PersonType成为Person的导航属性,并且自动映射器试图映射此...这是它失败的地方......我成功地传递了一个PersonTypeID来将Person与Person类型关联起来。我认为这将是我需要做的。我怎样才能解决这个问题?
编辑2: 所以基本上在DB我的人表有一个PersonTypeID列(外键PersonType表)......这个被映射为一个导航属性人为PersonType对象...
从我的形式来看,我有一个下拉列表,选择其中通过PersonTypeID财产早在视图模型中的人物对象的人类型...
automapper似乎正在寻找Person的PersonType nav属性的值以映射...我得到一个AutoMapper.AutoMapperMappingException
错误
Destination property: PersonType
Exception of type 'AutoMapper.AutoMapperMappingException' was thrown.
你是正确的..我发现我的问题在别处。我编辑了我原来的问题...你会得到一个upvote指向我的正确道路...即时通过今天的投票,虽然:) – stephen776 2011-04-06 21:49:40
谢谢斯蒂芬。好的,你可以详细解释一下你的问题,也许增加一些代码?我在编辑过程中遇到困难。 – Aliostad 2011-04-06 21:52:14
好吧加了一些。希望它有帮助 – stephen776 2011-04-06 21:57:02