我有课:
public class Person{ /* Props here */ }
public class PersonViewModel { /* Props here */ }
Run Code Online (Sandbox Code Playgroud)
然后是清单:
List<Person> people = new List<Person>();
List<PersonViewModel> peopleVM = Mapper
.MapList<Person, PersonViewModel>(people); //Problem here.
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
我正在开发一个 MVC 3 应用程序,并使用 AutoMapper 在我的 ViewModel 和我的实体之间移动数据。我有一个场景,我需要在两个列表之间移动数据。出于某种奇怪的原因,AutoMapper 似乎只从源对象复制第一个对象,然后似乎将同一对象多次复制到目标列表。例如,假设您有 2 个列表,源包含 6 个实体项目,目标包含 0 个项目,因为它刚刚被实例化。位置 source[0] 处的项目被复制到目标,然后 source[0] 被重复复制源列表中相同数量的项目,在这种情况下为 6。我不明白可能是什么造成这种情况。
这是 AutoMapper 配置文件:
public static class AutoMapperConfigurator
{
public static void Configure()
{
Mapper.CreateMap<User, UserModel>();
Mapper.CreateMap<Posting, PostingModel>();
}
}
Run Code Online (Sandbox Code Playgroud)
这是 Global.asax 文件设置
protected void Application_Start()
{
AutoMapperConfigurator.Configure();
}
Run Code Online (Sandbox Code Playgroud)
这是我调用 Map 方法的位置
userSearchModel.UserList = Mapper.Map<IList<User>, IList<UserModel>>(userEntities);
Run Code Online (Sandbox Code Playgroud)