(十)AutoMapper
AutoMapper
1.DTO层
下载包

因为一般不允许在控制器传递数据库实体,实体类一般具有很多配置,特性,继承关系,命名,所以新增一层dto
在公共类库中

public class BaseDto : INotifyPropertyChanged
{
public int id { get; set; }
public event PropertyChangedEventHandler? PropertyChanged;
//实现通知更新、
public void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
待办事项数据实体
//待办事项数据实体
//作为控制器传输的实体
public class ToDoDto : BaseDto
{
private string title;
private string content;
private int status;
public string Title
{
get { return title; }
set { title = value; OnPropertyChanged(); }
}
public string Content
{
get { return content; }
set { content = value; OnPropertyChanged(); }
}
public int Status
{
get { return status; }
set { status = value; OnPropertyChanged(); }
}
}
2. 在api中创建配置类

//配置映射关系
public class AutoMapperProFlie:MapperConfigurationExpression
{
//ctor打出构造函数
public AutoMapperProFlie()
{
CreateMap<ToDo,ToDoDto>().ReverseMap();
//字段不同或者名称问题在这里配置
}
}
3.修改类型
控制器

服务器接口

4.添加auto mapper
在program中
//添加automapper
var automapperConfig = new MapperConfiguration(config =>
{
config.AddProfile(new AutoMapperProFlie());
});
builder.Services.AddSingleton(automapperConfig.CreateMapper());//创建一个mapper添加到单例当中
5. service 层修改
- 构造函数注入mapper
![image]()
- add和update修改
![image]()
![image]()





浙公网安备 33010602011771号