在使用AutoMapper时,可以使用Projection来仅映射所需的字段。以下是一个示例代码:
// 定义源对象类
public class SourceObject
{
public string Field1 { get; set; }
public string Field2 { get; set; }
public string Field3 { get; set; }
}
// 定义目标对象类
public class DestinationObject
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
// 创建AutoMapper映射配置
var config = new MapperConfiguration(cfg =>
{
// 使用Projection来仅映射所需字段
cfg.CreateMap()
.ForMember(dest => dest.Field1, opt => opt.MapFrom(src => src.Field1))
.ForMember(dest => dest.Field2, opt => opt.MapFrom(src => src.Field2));
});
// 创建Mapper对象
var mapper = config.CreateMapper();
// 测试映射
var source = new SourceObject
{
Field1 = "Value1",
Field2 = "Value2",
Field3 = "Value3"
};
var destination = mapper.Map(source);
Console.WriteLine("Field1: " + destination.Field1);
Console.WriteLine("Field2: " + destination.Field2);
在上面的示例中,我们定义了源对象类SourceObject
和目标对象类DestinationObject
。然后,我们创建了一个AutoMapper映射配置,使用Projection来仅映射Field1
和Field2
字段。最后,我们使用Mapper对象将源对象映射到目标对象,并测试输出映射结果。
输出结果将是:
Field1: Value1
Field2: Value2
可以看到,只有Field1
和Field2
字段被成功映射到目标对象中。Field3
字段被忽略。