映射集合时使用Automapper忽略集合中的项目

时间:2015-06-01 10:17:19

标签: c# automapper

我正在映射一组项目

var List<A> myCollection = new List<A>();

public class A
{
    bool HasChanges {get;set;}
}

var mappedCollection = Map(myCollection);

然后我只想映射HasChanges == true

的项目

这可能吗?

2 个答案:

答案 0 :(得分:0)

Linq:

var mappedCollection = Map(myCollection.Where(x => x.HasChanges == true).ToList());

答案 1 :(得分:0)

Automapper有自定义类型转换器:

https://github.com/AutoMapper/AutoMapper/wiki/Custom-type-converters

// this is your converter
public class ATypeConverter : ITypeConverter<string, A>
{
    public A Convert(ResolutionContext context)
    {
          // implement conversion logic
    }
}

// add this in a bootstrapper in your app
Mapper.CreateMap<string, A>().ConvertUsing<ATypeConverter>();

现在,在您Map对象后,它会使用您的自定义映射器对其进行转换,这样您就可以跳过包含更改的项目。