将源集合的Id映射到目标对象集合ID

时间:2014-02-04 12:43:58

标签: c# automapper

假设在源对象中我有类:

// Source classes
class Source
{
   public Source
   {
      things = new List<Thing>();
   }

   public Guid SourceId { get; set; }
   public string Name { get; set; }
   public virtual List<Thing> Things { get; set; }
}

class Thing
{
  public Guid ThingId { get; set; }
  public double Price { get; set; }
}

//Destination class
class Dest
{
    public Guid DestId { get; set; }
    public string Name { get; set; }
    public virtual List<Guid> ThingsIds { get; set; }
}

如何映射事物 - &gt; ThingId(src)使用Automapper到ThingsIds(dest)?

1 个答案:

答案 0 :(得分:1)

我会使用LINQ扩展方法.Select

Mapper.CreateMap<Source, Dest>()
    .ForMember(
        dest => dest.ThingsIds, 
        opt => opt.MapFrom(src => src.Things.Select(th => th.ThingId)));