自动映射自定义映射问题

时间:2017-12-08 06:10:13

标签: asp.net-mvc asp.net-web-api automapper automapper-6

我是第一次使用版本6.2.2的Automapper用户。我试着找出如何在DB实体下面映射到自定义DTO。

public partial class vw_Owner
{
    public int Space_Id { get; set; }       
    public string Owner_ID { get; set; }
    public string Owner_SID { get; set; }
    public string Owner_Name { get; set; }
}

public class OwnerDTO
{        
    public int SpaceId { get; set; }        
    public string OwnerID { get; set; }
    public string OwnerSID { get; set; }
    public string OwnerName { get; set; }
}

以下是我的地图资料。

public class MappingProfile : Profile
{
    public static readonly IMapper iMapperConfig;
    static MappingProfile()
    {
        var config = new MapperConfiguration(cfg =>
        {
            //cfg.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();
            //cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention();
            //cfg.AddMemberConfiguration().AddName<ReplaceName>(_ => _.AddReplace("_", ""));               

            cfg.CreateMap<vw_Owner, Owner>();                
        });
        iMapperConfig = config.CreateMapper();            
    }
}

我还尝试创建自己的自定义命名约定。下面是代码,但它不起作用。

public class UnderscoreNamingConvention : INamingConvention
{
    public Regex SplittingExpression { get; } = new Regex(@"[\p{Lu}\p{Ll}0-9]+(?=_?)");

    public string SeparatorCharacter => "_";

    //public string ReplaceValue(Match match) => match.Value;//.ToLower();
    public string ReplaceValue(Match match)
    {
        return match.Value;
    }
}

我尝试了文档中的注释行,但似乎没有用。我有15个以上类似的数据库实体包含_但DTO类没有。我正在寻找一种方法来解决所有具有某些解析器的实体。

由于

0 个答案:

没有答案