0
我想使用AutoMapper將一個集合映射到另一個集合。我知道的慣例是設立的子對象的映射:如何使用AutoMapper將一個集合映射到另一個集合?
Mapper.CreateMap<User, UserDto>();
然後這工作得很好:
Mapper.Map<List<UserDto>>(UserRepo.GetAll());
但我還是想反正映射列表。例如,我想要做這樣的事情:
Mapper.CreateMap<List<User>, List<UserDto>>()
.AfterMap((source, destination) =>
{
// some complex/expensive process here on the entire user list
// such as retrieving data from an external database, etc
}
這樣,我仍然可以使用第一張地圖也做一些定製與用戶名單。在我的場景中,它正在另一個數據中心的外部數據庫中查找事件ID,我想通過查找唯一ID來優化它,而不是逐個對象地進行。
但是,當我嘗試將User列表映射到UserDto列表時,映射只是返回一個空列表。在AfterMap
函數中放置一個斷點表明destination
變量包含一個空列表。我如何使AutoMapper正確地執行此操作?