我正在尝试使用 AutoMapper 从包含对象列表的域对象进行映射,其中我有一个布尔属性,我想使用 AutoMapper 用来将该列表拆分为目标对象上的两个目标的属性。
我的基本域如下所示(来源)
//Domain object
public class Article
{
public bool IsActive { get; set; }
}
所以我的来源将是IList
我的视图看起来像这样(目的地)
//DTO
public class ViewAllArticles
{
public IList<ViewArticle> ActiveArticles { get; set; }
public ILIst<ViewArticle> InactiveArticles { get; set; }
}
public class ViewArticle
{
public bool IsActive { get; set; }
}
通缉地图
//wanted mapping code (source to destination)
Mapper.Map<IList<Article>, ViewAllArticles>(collectionOfAllArticles)
其中 ActiveArticles 仅包含“IsActive=true”的文章,InactiveArticles 反之亦然。
希望你们中的一个人可以帮助我开始进行这种映射,我会发现这非常有用。
提前致谢。
你可以这样做
internal class StartNewDemo
{
public static void Main(string[] args)
{
Mapper.CreateMap<IList<Article>, ViewAllArticles>()
.ForMember(map => map.ActiveArticles, opt => opt.MapFrom(x => x.Where(y => y.IsActive)))
.ForMember(map => map.InactiveArticles, opt => opt.MapFrom(x => x.Where(y => !y.IsActive)));
var list = new List<Article>() { new Article { IsActive=true }, new Article { IsActive = false } };
var result = Mapper.Map<List<Article>, ViewAllArticles>( list );
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)