如何为一堆属性

时间:2017-02-04 12:31:17

标签: c# automapper

我有2个类,想要配置从一个到另一个的映射

public class Customer
{
   public long CustomerId{get;set;}
   public string ShippingAddres{get;set;}
   public string BillingAddress{get;set;}
   public DateTime DateOfBirth {get;set;}
}

public class Item2
{
   public long customer_id{get;set;}
   public string shipping_addres{get;set;}
   public string billing_address{get;set;}
   public DateTime date_of_birth {get;set;}
}

我试图搜索答案,但我找到的所有答案都是手动映射字段:

.ForMember(dest => dest.CustomerId, opt => opt.MapFrom(src => src.customer_id));

我不想手动映射每个属性,因为我有很多属性。我想配置一些规则:

通过' _'分割属性名称并将字符串连接到CamelCase

或伪代码:

cfg.AddConditionalObjectMapper().Where((source, destination) => s.Name.Replace("(_)([a-z])","\U1") == d.Name );

问题不在于Regex,我需要知道如何在Auto-mapper中配置这些规则?

1 个答案:

答案 0 :(得分:0)

我找到了一种配置它的方法,但这种方法并不普遍:

            cfg.AddMemberConfiguration().AddName< ReplaceName >( _ => _.AddReplace( "_", "" ) );
            cfg.AddMemberConfiguration().AddName< CaseInsensitiveName >();