public class ObjectA
{
string abc {get; set;}
}
public class ObjectB
{
string abc {get; set;}
string bla {get; set;}
}
public class A
{
public string x { get; set; }
public ICollection<ObjectA> CollectionA {get; set;}
}
public class B
{
public string x { get; set; }
public ICollection<Object B> CollectionB { get; set; }
}
cfg.CreateMap<A, B>()
.ForMember(dest => dest.CollectionB, opt => opt.MapFrom(src => src.CollectionA));
您好,我想保留Collection但忽略bla String里面,我该如何实现呢?
我想我必须做以下事情: .ForSourceMember(x =&gt; x.CollectionB,opt =&gt; opt.Ignore());
在自动播放器文档中搜索,但无法找到使用集合执行此操作的方法。 有人可以帮助我吗? 谢谢!
答案 0 :(得分:0)
添加从ObjectA
到ObjectB
的映射,并且automapper将使用该映射。
自动映射器也不需要从IEnumberable<ObjectA>
到IEnumberable<ObjectB>
的显式映射 - 只需要初始ObjectA
和ObjectB
- 它会推断其余的(显然你会仍然需要上面示例中的A
到B
映射,但因为它们有自己的属性。)
答案 1 :(得分:0)
原来我不需要映射集合对象属性本身。只需要维护我之前的映射,如下所示:
cfg.CreateMap<A, B>()
.ForMember(dest => dest.CollectionB, opt => opt.MapFrom(src => src.CollectionA))
对象关系,像这样:
cfg.CreateMap<ObjectB, ObjectA>()
.ForSourceMember(src => src.bla, dest => dest.Ignore());
这样,automapper就可以解决这个问题! 希望这有助于某人!