我正在使用ASP.NET MVC 3
。
有人可以帮我澄清一下这里发生的事情:
var person = new PersonRepository().Get();
var personViewModel = new PersonViewModel();
personViewModel.InjectFrom<LoopValueInjection>(person)
.InjectFrom<CountryToLookup>(person);
我的
Index
View 上有一个网格。每行都是CategoryViewModel
的一个实例。因此,我要做的是获取所有类别的列表,然后将每个Category
映射到CategoryViewModel,然后将此CategoryViewModels列表传递给 View 。侯我会做这样的映射吗?IEnumerable<Category> categoryList = categoryService.GetAll();
我认为以下方法会起作用,但不会起作用:
// Mapping
IList<CategoryViewModel> viewModelList = new List<CategoryViewModel>();
viewModelList.InjectFrom(categoryList);
最佳答案
AFAIK值注入(inject)器不支持像AutoMapper这样的自动集合映射,但是您可以使用简单的LINQ表达式并对每个元素进行操作:
IEnumerable<Category> categoryList = categoryService.GetAll();
IList<CategoryViewModel> viewModelList = categoryList
.Select(x => new CategoryViewModel().InjectFrom(x)).Cast<CategoryViewModel>()
.ToList();