Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 映射到iList的Mapper.Map的条件_C#_Automapper - Fatal编程技术网

C# 映射到iList的Mapper.Map的条件

C# 映射到iList的Mapper.Map的条件,c#,automapper,C#,Automapper,我设置了以下结构来将iList映射到集合。曾经,删除的项目只是从数据库中删除,但现在它们被“标记”为已删除(标志),这意味着现在需要在映射中过滤删除的项目。我使用了: .ForAllMembers(opt=>opt.Condition(src=>!src.Deleted.Equals(true)) db到对象映射的语法工作正常,但是,当对象是列表时,我不知道如何包含过滤器。代码如下: Mapper.CreateMap<IList<DbItem>, Collection>(

我设置了以下结构来将iList映射到集合。曾经,删除的项目只是从数据库中删除,但现在它们被“标记”为已删除(标志),这意味着现在需要在映射中过滤删除的项目。我使用了: .ForAllMembers(opt=>opt.Condition(src=>!src.Deleted.Equals(true)) db到对象映射的语法工作正常,但是,当对象是列表时,我不知道如何包含过滤器。代码如下:

Mapper.CreateMap<IList<DbItem>, Collection>()
     .ConstructUsing(
        (IList<DbItem> src) =>
             src != null 
                 ? new AuthorizedContactCollection(Mapper.Map(src), *xxx*)
                 : new AuthorizedContactCollection())
     .Ignore(dest => dest.IsSynchronized);
Mapper.CreateMap()
.施工(
(IList src)=>
src!=null
?新的授权联系人集合(Mapper.Map(src),*xxx*)
:新建AuthorizedContactCollection())
.Ignore(dest=>dest.IsSynchronized);

我怀疑过滤器应该放在xxx所在的位置,但我不知道语法…

得到了语法,但出于某种原因它没有过滤出值

src!=null ?新的AuthorizedContactCollection(Mapper.Map>(src).Where(x=>!x.Deleted.Equals(true))) :新建AuthorizedContactCollection())

对象没有被过滤掉…

明白了。 Mapper.Map>(src.Where(x=>x.Deleted.Equals(true)))

希望这能在某些方面帮助别人