我将以下结构设置为将iList映射到集合。有一次,删除的项目只是从数据库中删除,但现在它们被标记为" as deleted(flag)表示现在需要在映射中过滤已删除的项目。我用过: .ForAllMembers(opt => opt.Condition(src =>!src.Deleted.Equals(true)) db to object mappings的语法很好,但是,当对象是列表时,我无法弄清楚如何包含过滤器。代码如下:
Mapper.CreateMap<IList<DbItem>, Collection>()
.ConstructUsing(
(IList<DbItem> src) =>
src != null
? new AuthorizedContactCollection(Mapper.Map(src), *xxx*)
: new AuthorizedContactCollection())
.Ignore(dest => dest.IsSynchronized);
我怀疑过滤器应该放在 xxx 的位置,但是我无法弄清楚语法......
答案 0 :(得分:0)
获得了语法,但由于某种原因,它没有过滤掉值...
src!= null ? new AuthorizedContactCollection(Mapper.Map&gt;(src).Where(x =&gt;!x.Deleted.Equals(true))) :new AuthorizedContactCollection())
该对象未被过滤掉......
答案 1 :(得分:0)
得到了它。 Mapper.Map&gt;(src.Where(x =&gt; x.Deleted.Equals(true))))
希望这在某些方面可以帮助别人!