我正在嘗試將服務結果映射到特定的視圖模型。我有一個名爲Category的實體,其中包含一個Id和一個名稱。我通過一個存儲庫ICategoryRepository公開這個。我有一個服務IInfrastructureService,它使用類別庫到GetAllCategories。 GetAllCategories返回一個IList。在我的MVC項目中。我有一個名爲NavigationController的控制器。這個控制器需要調用GetAllCategories的服務。我想這樣的結果映射到這樣的結構:使用Automapper將服務結果映射到視圖模型
public class CategoryViewModel {
public Guid CategoryId { get; set; }
public string Name { get; set; }
}
public class CategoryMenuViewModel {
public IList<CategoryViewModel> Categories { get; set; }
public CategoryViewModel SelectedCategory { get; set; }
}
我想使用Automapper來做到這一點。在我的Application_Start()創建的地圖:
Mapper.CreateMap<Category, CategoryViewModel>();
然後在我的控制器:
public ViewResult CategoryMenu()
{
CategoryMenuViewModel viewModel = new CategoryMenuViewModel();
Mapper.CreateMap<Category, CategoryViewModel>();
viewModel.Categories = Mapper.Map<IList<Category>, IList<CategoryViewModel>>(_infrastructureService.GetAllCategories());
return View(viewModel);
}
這是給我這個例外:一個組件中有重複的類型名。
我不知道我在做什麼錯在這裏。任何幫助或指導都會搖滾!