当前位置: 首页 > news >正文

做轴承生意的网站wordpress有广告插件

做轴承生意的网站,wordpress有广告插件,室内设计专业就业方向,写手机版网站的静态页面配置 AutoMapper 关系映射 在上一节 ToDoController 控制器#xff0c;或 IToDoService 服务接口中#xff0c;方法的传参都是直接传的实体类。但在实际开发过程中#xff0c;这样是不允许的。标准且规范的做法是#xff0c;定义一个数据传输层#xff0c;即Dto层。 一.在…配置 AutoMapper 关系映射 在上一节 ToDoController 控制器或 IToDoService 服务接口中方法的传参都是直接传的实体类。但在实际开发过程中这样是不允许的。标准且规范的做法是定义一个数据传输层即Dto层。 一.在MyToDo.Api 项目中安装 Auto Mapper 二. 在MyToDo.Shared 项目中创建一个Dtos文件夹存放Dto文件 1. 创建 BaseDto 基类用于存放共用属性。 public class BaseDto{public int Id { get; set; }} 2. 创建待办事项 Dto类并继承自 BaseDto 基类  /// summary/// 待办事项数据实体/// /summarypublic class ToDoDto:BaseDto{public string Title { get; set; }public string Content { get; set; }public int Status { get; set; }} 3.由于我们的客户端是Wpf 项目各属性需要实现通知绑定 。所以 BaseDto类需要进行修改并且要继承自 INotifyPropertyChanged 接口。同时还要实现一个通知绑定的方法。 public class BaseDto:INotifyPropertyChanged{public int Id { get; set; }public event PropertyChangedEventHandler? PropertyChanged;/// summary/// CallerMemberName 是一个自动获取传入名称的属性/// /summary/// param namepropertyName/parampublic void OnPropertyChanged([CallerMemberName] string propertyName ){PropertyChanged?.Invoke(this,new PropertyChangedEventArgs(propertyName));}} 4.接着要需要再修改 ToDoDto 让它具备实现属性绑定通知功能。 /// summary/// 待办事项数据实体/// /summarypublic 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(); }}} 三.把实体类ToDo和定义的数据传输类ToDoDto 进行关系映射 1.在 MyToDo.Api 项目中创建一个 Extensions 扩展文件夹。再创建一个 AutoMapperProFile 类并且继承自 MapperConfigurationExpression该类用于配置所有实体类和数据传输类的映射关系。 public class AutoMapperProFile:MapperConfigurationExpression{public AutoMapperProFile(){/// 实体类和数据传输类进行映射CreateMapToDo, ToDoDto().ReverseMap();}} ReverseMap 表示两者之间可以互相进行转换。 四.修改 ToDoController 控制器传参和IToDoService 服务传参 1. IToDoService接口类传入的ToDo实体改成ToDoDto public interface IToDoService:IBaseServiceToDoDto{} 2.ToDoService 服务实现类所有传入参数是ToDo实体需全部换成ToDoDto。并且需要在构造函数中注入 IMapper 接口。 /// summary/// 待办事项的实现/// /summarypublic class ToDoService : IToDoService{private readonly IUnitOfWork work;private readonly IMapper mapper;public ToDoService(IUnitOfWork work,IMapper mapper){this.work work;this.mapper mapper;}public async TaskApiResponse AddAsync(ToDoDto model){try{var doto mapper.MapToDo(model);//进行数据映射转换await work.GetRepositoryToDo().InsertAsync(doto);if (await work.SaveChangesAsync() 0) //保存成功{return new ApiResponse(true, model); //返回true并把添加的实体返回}return new ApiResponse(添加数据失败);}catch (Exception ex){return new ApiResponse(ex.Message);}}public async TaskApiResponse DeleteAsync(int id){try{var repository work.GetRepositoryToDo();//获取仓储//删除之前先进行查询var todo await repository.GetFirstOrDefaultAsync(predicate:xx.Id.Equals(id));repository.Delete(todo);if (await work.SaveChangesAsync() 0) //删除成功{return new ApiResponse(true, 删除成功); }return new ApiResponse(删除数据失败);}catch (Exception ex){return new ApiResponse(ex.Message);}}public async TaskApiResponse GetAllAsync(){try{var todos await work.GetRepositoryToDo().GetAllAsync();return new ApiResponse(true, todos); //返回true并返回所有数据}catch (Exception ex){return new ApiResponse(ex.Message);}}public async TaskApiResponse GetSingleAsync(int id){try{var todo await work.GetRepositoryToDo().GetFirstOrDefaultAsync(predicate: x x.Id.Equals(id));return new ApiResponse(true, todo); //把找到的数据返回}catch (Exception ex){return new ApiResponse(ex.Message);}}public async TaskApiResponse UpdateAsync(ToDoDto model){try{var dbdoto mapper.MapToDo(model);var repository work.GetRepositoryToDo();//获取仓储//更新之前先拿到要更新的数据var todo await repository.GetFirstOrDefaultAsync(predicate: x x.Id.Equals(dbdoto.Id));todo.Title dbdoto.Title;todo.Content dbdoto.Content;todo.Status dbdoto.Status;todo.UpdateDate DateTime.Now;repository.Update(todo);if (await work.SaveChangesAsync() 0) //更新成功{return new ApiResponse(true, 更新成功);}return new ApiResponse(更新数据失败);}catch (Exception ex){return new ApiResponse(ex.Message);}}} IMapper 接口里的 Map 方法用于 Dto和实体类之间的数据映射转换 3.把ToDoController 控制器传入的ToDo实体改成ToDoDto [ApiController][Route(api/[controller]/[action])]public class ToDoController:ControllerBase{private readonly IToDoService service;public ToDoController(IToDoService service){this.service service;}[HttpGet]public async TaskApiResponse Get(int id) await service.GetSingleAsync(id);[HttpGet]public async TaskApiResponse GetAll() await service.GetAllAsync();[HttpPost]public async TaskApiResponse Add([FromBody]ToDoDto model) await service.AddAsync(model);[HttpPost]public async TaskApiResponse Update([FromBody] ToDoDto model) await service.UpdateAsync(model);[HttpDelete]public async TaskApiResponse Delete(int id) await service.DeleteAsync(id);} 五.最后需要在Program.cs 中进行注册 AutoMapper 服务 //注入AutoMapper builder.Services.AddSingleton(new MapperConfiguration(config {config.AddProfile(new AutoMapperProFile()); }).CreateMapper()); 六.运行测试接口都正常证明配置AutoMapper 成功了
http://www.pierceye.com/news/269558/

相关文章:

  • 网站建设的定位是什么意思php网站开发实例视频
  • 做资讯类网站需要特殊资质吗宜昌网站排名优化
  • 百度怎么建立自己的网站科技公司网站设计公司
  • 长沙做网站的包吃包住4000网站图片如何做水印
  • wordpress的固定链接怎么设置包头整站优化
  • 瓯海建设网站中国建设劳动协会网站
  • 烟台专业做网站公司有哪些中企动力重庆分公司
  • iis 怎么绑定网站二级目录广东东莞市
  • 运城网站制作公司成crm软件
  • 阿里云网站备案登陆荆州网站开发
  • 06628 网页制作与网站建设深圳建筑人才网为什么电脑打不开
  • 企业网站建设方讯快速建站代理
  • 全面的基础微网站开发wordpress首页插件
  • 陕西省住房和城乡建设厅网站上怎么打印证书中盛客户管理软件
  • html网站标题怎么做的国外免费推广平台有哪些
  • 网站制作com cn域名有什么区别网站制作哪家好
  • 平湖网站设计北京广告公司名录
  • 不良网站进入窗口免费正能量安全的南昌网站制作
  • 商品交换电子商务网站开发网站首页制作公司
  • wordpress全站备份建设网站和推广
  • 广州市官网网站建设哪家好上海营销型网站建设公司
  • 江山网站制作瑞安自适应网站建设
  • 生意网官方网站高端建设网站
  • 公司网站建设南宁腾讯企业邮箱登录入口手机版
  • 简历网站推荐做网站公司是干什么的
  • 网站备案率是什么会展相关app和网站的建设情况
  • 南京网站设计网站建设上海网站域名备案处
  • 做网站市场分析三视觉平面设计网
  • 网站建设中++模板企业网站部署计划
  • 房产部门成立网站wordpress站内搜索次数