0
我一直在四处搜索,但还没有发现这个特殊的问题。我发现有关将多个类型映射到同一个实体的线程,但不是这个......我不认为这应该是一个问题。AutoMapper - 不能用相同的方法映射两种类型
当我第一次将EventDto映射到EventUserViewModel时,它可以工作。当我稍后将EventDto映射到EventViewModel时,它会崩溃,因为AutoMapper认为我想再次映射到EvenUserViewModel?
如果我改变顺序,同样的问题发生,只能颠倒过来。
在这里提供一些代码;它基本上是发生问题的地方的简单例子。
// Mapping an EventDto to a EventUserViewModel
EventUsersViewModel viewModel = Mapper.Map<EventUsersViewModel>(eventService.GetEventDto(id));
// Getting a list of EventDtos
var myEvents = eventService.GetMyEvents(User.Identity.GetUserId(), User.IsInRole(RoleNames.ADMIN_USER));
// Mapping all EventDtos to EventViewModels
List<EventViewModel> eventViewModelList = myEvents.Select(Mapper.Map<EventViewModel>).ToList();
最后一行是失败的地方。即使我严格指定类型,AutoMapper会尝试将我的EventDtos映射到EventUserViewModels而不是EventViewModel。
我想这是在映射静态API造成的。它在今年初废弃[从AutoMapper中移除静态API](https://lostechies.com/jimmybogard/2016/01/21/removing-the-static-api-from-automapper/) –