AutoMapper的一些配置
使用的Core3.0 和frame4.5可能会有一些区别
记录自己写的Mapper的配置 有不好的地方欢迎指正
可以对为Null的属性进行一些默认值的配置 转换方法在MapFactory 中的ValueTransformers
int? -> 0
datetime? ->datetime.now
bool? ->false
string->""
下面的项目中只设置了自己map自己才会对null附加默认值
如果在项目中使用 请在程序启动时就调用MapFactory.GetMapper()方法
下载地址:
CSDN:https://download.csdn.net/download/qq_35219163/12358646
码云:https://gitee.com/hongxiang2/Automapper
百度云: https://pan.baidu.com/s/14BzKOsQbtgX35TqyqmoK-w
提取码:v2s5
IMap接口
public interface IMap
{
public const string MapFuncName = nameof(GetMapTypes);
/// <summary>
/// 需要交给MapFactory进行map的类型
/// </summary>
/// <returns></returns>
public List<Type> GetMapTypes();
/// <summary>
/// 自定义的map规则
/// </summary>
/// <param name="ex"></param>
void CustomMap(MapperConfigurationExpression ex);
}
继承IMap (DogMap)
public class DogMap : IMap
{
public void CustomMap(MapperConfigurationExpression ex)
{
///指定映射字段 或其他自定义映射 指定TString 映射为TString2
// ex.CreateMap< DogDTO, DogModel>()
//.ForMember(dest => dest.TString, options => options.MapFrom(
// src => src.TString2 ));
}
public List<Type> GetMapTypes()
{
var list = new List<Type>
{
typeof(DogModel),
typeof(DogDTO),
typeof(DogPVO),
};
return list;
}
}
Model DTO 与PVO
public class DogModel//DogModel DogDTO DogPVO字段全部一样 实际开发PVO字段可能会少一些
{
public string TString {
get; set; }
public string TString2 {
get; set; }