在使用.Net Core 构建 RESTful APi时 我们常常会使用Entity Framework Core 我们常常使用面向外部model 来向api 消费者返回数据
public class Infomation //内部Model
{
public string name { get; set; }
public string age { get; set; }
}
public class infomationDto //创建面向外部Model
{
public string Cname { get; set; }
public string Cage { get; set; }
}
使用Nuget 引入 AutoMapper 包
在 ConfigureServices中进行配置
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
public class infomationprofiles:Profile 创建类继承自Profile
{
public infomationprofiles()
{
CreateMap<Infomation, infomationDto>().BeforeMap(
// 这里表示将数据赋值给外部model
(x,e) => {
e.Cname = x.name ;
e.Cage = x.age ;
});
}
}
//在控制器中注入
public static IMapper _mappp;
public HomeController(IMapper mapper)
{
_mappp = mapper;
}
public ActionResult<IEnumerable<infomationDto>> get()
{
Infomation info= new Infomation {name="张三",age="15" };
var result= _mappp.Map<infomationDto>(info);
return Ok(result);
}
Entity Model 和 面向外部的 Model 分离开来会使得程序更加健壮、可靠和更易于进化。
微信公众号ck17118504426