我正在尝试将服务结果映射到特定的视图模型。我有一个名为 Category 的实体,其中包含一个 Id 和一个名称。我通过存储库 ICategoryRepository 公开它。我有一个服务 IInfrastructureService,它使用类别存储库来获取所有类别。GetAllCategories 返回一个 IList。在我的 MVC 项目中。我有一个名为 NavigationController 的控制器。此控制器需要调用 GetAllCategories 服务。我想将此结果映射到这样的结构中:
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);
}
这给了我这个例外:程序集中的类型名称重复。
我不确定我在这里做错了什么。任何帮助或指导都会动摇!