【发布时间】:2014-04-21 20:37:08
【问题描述】:
我有一个 EF 生成的 Person 类,它有几个属性。我还有一个具有多个属性的类 Jobs。一个人与多个工作相关,因此 Jobs 是一个人的 Collection 属性。
我已经创建了这样的视图模型:
public class PersonViewModel
{
public Person Person{ get; set; }
public List<Job> Jobs{ get; set; }
}
在我看来,我发布了一个 PersonViewModel 实例。我想使用 AutoMapper 将此视图模型映射回 Person 的实例,其 Jobs 集合属性填充了视图模型中的列表。
这可以实现吗?到目前为止,我已经尝试过:
Mapper.CreateMap<PersonViewModel, Person>();
没有运气......
编辑:
好的,这确实有效。我发现我在其他地方有问题......
我的 Person 对象也与 PersonType 表有一对多的关系... PersonType 成为 Person 的导航属性,自动映射器正在尝试映射它...这是失败的地方...我成功通过了将 Person 与人员类型相关联的 PersonTypeID。我以为这就是我需要做的。我该如何解决这个问题...
编辑 2: 所以基本上我在数据库中的 Person 表有一个 PersonTypeID 列(PersonType 表的外键)...这被映射为 Person 的导航属性作为 PersonType 对象...
从我的视图中,我有一个下拉列表来选择人员类型,它将 PersonTypeID 属性传递回视图模型中的人员对象中......
automapper 似乎正在寻找要映射的 Person 的 PersonType nav 属性的值...我收到了 AutoMapper.AutoMapperMappingException
错误
Destination property: PersonType
Exception of type 'AutoMapper.AutoMapperMappingException' was thrown.
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-3