asp.net – 如何使用ValueInjector映射列表

前端之家收集整理的这篇文章主要介绍了asp.net – 如何使用ValueInjector映射列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用ASP.NET MVC 3。

有人可以帮我澄清这里发生了什么:

var person = new PersonRepository().Get();

var personviewmodel = new Personviewmodel();
personviewmodel.InjectFrom<LoopValueInjection>(person)
     .InjectFrom<CountryToLookup>(person);

我的索引视图上有一个网格。每一行都是一个Categoryviewmodel的一个实例。所以我做的是获取所有类别的列表,然后将每个类别映射到Categoryviewmodel,然后将此Categoryviewmodels列表传递给视图。那我会做一个这样的映射

IEnumerable<Category> categoryList = categoryService.GetAll();

我以为以下的工作,但它没有:

// Mapping
IList<Categoryviewmodel> viewmodelList = new List<Categoryviewmodel>();
viewmodelList.InjectFrom(categoryList);

解决方法

AFAIK值注入器不支持自动收集映射,如AutoMapper,但您可以使用简单的LINQ表达式并对每个元素进行操作:
IEnumerable<Category> categoryList = categoryService.GetAll();
IList<Categoryviewmodel> viewmodelList = categoryList
    .Select(x => new Categoryviewmodel().InjectFrom(x)).Cast<Categoryviewmodel>()
    .ToList();

猜你在找的asp.Net相关文章