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

刚做的网站怎么搜索不出来的电子商务网站建设与管理 技能实训

刚做的网站怎么搜索不出来的,电子商务网站建设与管理 技能实训,聚星科技过会,梧州房源信息网上一篇文章集成了定时任务处理框架Hangfire#xff0c;完成了一个简单的定时任务处理解决方案。本篇紧接着来玩一下AutoMapper#xff0c;AutoMapper可以很方便的搞定我们对象到对象之间的映射关系处理#xff0c;同时abp也帮我们是现实了IObjectMapper接口#xff0c;先根… 上一篇文章集成了定时任务处理框架Hangfire完成了一个简单的定时任务处理解决方案。本篇紧接着来玩一下AutoMapperAutoMapper可以很方便的搞定我们对象到对象之间的映射关系处理同时abp也帮我们是现实了IObjectMapper接口先根据官方文档https://docs.abp.io/zh-Hans/abp/latest/Object-To-Object-Mapping 将AutoMapper添加依赖到项目中。在.Application层模块类中添加AbpAutoMapperModule模块依赖。//MeowvBlogApplicationModule.cs using Meowv.Blog.Application.Caching; using Volo.Abp.AutoMapper; using Volo.Abp.Identity; using Volo.Abp.Modularity;namespace Meowv.Blog.Application {[DependsOn(typeof(AbpIdentityApplicationModule),typeof(AbpAutoMapperModule),typeof(MeowvBlogApplicationCachingModule))]public class MeowvBlogApplicationModule : AbpModule{public override void ConfigureServices(ServiceConfigurationContext context){...}} } 在本项目中主要处理的就是实体和DTO之前的映射关系以之前写的BlogService.cs中的增删改查为例将Post.cs和PostDto.cs互相映射。先看GetPostAsync(int id)这个方法之前的做法是手动创建对象然后为其一个一个的赋值可以想象当我们的字段超级多的时候都得写一遍。现在有了AutoMapper一句代码就可以搞定。public async TaskServiceResultPostDto GetPostAsync(int id) {var result new ServiceResultPostDto();var post await _postRepository.GetAsync(id);if (post null){result.IsFailed(文章不存在);return result;}//var dto new PostDto//{// Title post.Title,// Author post.Author,// Url post.Url,// Html post.Html,// Markdown post.Markdown,// CategoryId post.CategoryId,// CreationTime post.CreationTime//};var dto ObjectMapper.MapPost, PostDto(post);result.IsSuccess(dto);return result; } ObjectMapper在ApplicationService中已经被注入我们的继承了ServiceBase可以直接使用。到这里还没完其中最重要的一步就是定义类与类之间的映射关系AutoMapper提供了多种定义类之间映射的方法有关详细信息请参阅AutoMapper的文档https://docs.automapper.org/其中定义一种映射的方法是创建一个Profile 类在.Application层添加MeowvBlogAutoMapperProfile.cs直接继承Profile在构造函数中定义即可。//MeowvBlogAutoMapperProfile.cs using AutoMapper; using Meowv.Blog.Application.Contracts.Blog; using Meowv.Blog.Domain.Blog;namespace Meowv.Blog.Application {public class MeowvBlogAutoMapperProfile : Profile{public MeowvBlogAutoMapperProfile(){CreateMapPost, PostDto();CreateMapPostDto, Post().ForMember(x x.Id, opt opt.Ignore());}} } 定义两个规则第一个从Post映射到PostDto因为PostDto所有属性在Post中都是存在的所以直接CreateMap即可第二个从PostDto映射到Post因为Post中存在Id属性而在PostDto中是没有的所以可以使用ForMember(...)来忽略掉Id属性。定义好映射规则后在模块类中添加使用。//MeowvBlogApplicationModule.cs ...public override void ConfigureServices(ServiceConfigurationContext context){ConfigureAbpAutoMapperOptions(options {options.AddMapsMeowvBlogApplicationModule(validate: true);options.AddProfileMeowvBlogAutoMapperProfile(validate: true);});} ... 使用同样的方式修改一下InsertPostAsync(PostDto dto)方法的代码。public async TaskServiceResultstring InsertPostAsync(PostDto dto) {var result new ServiceResultstring();//var entity new Post//{// Title dto.Title,// Author dto.Author,// Url dto.Url,// Html dto.Html,// Markdown dto.Markdown,// CategoryId dto.CategoryId,// CreationTime dto.CreationTime//};var entity ObjectMapper.MapPostDto, Post(dto);var post await _postRepository.InsertAsync(entity);if (post null){result.IsFailed(添加失败);return result;}result.IsSuccess(添加成功);return result; } 解放了双手代码也变少了真香去测试一下用了对象映射后的接口是否好使。可以看到结果也是可以出来的后续都将按照上面的方法大量用到对象映射。顺便介绍.HttpApi.Hosting层几个配置属性。路由规则配置默认Swagger中的路由是大写的如果我想转成小写可以使用以下配置代码都写在模块类MeowvBlogHttpApiHostingModule.cs中。public override void ConfigureServices(ServiceConfigurationContext context) { ...context.Services.AddRouting(options {// 设置URL为小写options.LowercaseUrls true;// 在生成的URL后面添加斜杠options.AppendTrailingSlash true;}); ... } 使用HSTS的中间件该中间件添加了严格传输安全头。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...app.UseHsts();... } 直接使用默认的跨域配置。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...app.UseCors();... } HTTP请求转HTTPS。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...app.UseHttpsRedirection();... } 转发将标头代理到当前请求配合 Nginx 使用获取用户真实IP。public override void OnApplicationInitialization(ApplicationInitializationContext context) {...pp.UseForwardedHeaders(new ForwardedHeadersOptions{ForwardedHeaders ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto});... } 本篇介绍了如何使用AutoMapper搞定对象到对象间的映射篇幅简短内容比较简单你学会了吗????????????开源地址https://github.com/Meowv/Blog/tree/blog_tutorial
http://www.zqtcl.cn/news/964264/

相关文章:

  • 卡盟网站是怎么建设的产品开发设计
  • 第一免费营销型网站一起做网店17
  • 高端学校网站建设做网站是怎么赚钱的
  • 哪里可以找人做网站在服务器上中的asp网站后台能输入帐号无法进入
  • 怎么网站关键词语有哪些
  • 网站建设 维护费用环球易购招聘网站建设
  • 怎么做网站官方电话手机应用开发平台
  • 济南企业免费建站剪辑视频怎么学
  • 手表网站免费设计上海做网站制作
  • 深圳网站seo优化课程设计做淘宝网站的目的
  • 机械网站建设中心莱芜论坛莱芜都市网
  • 58同城类似的网站怎么做seo做的比较好的公司
  • 厦门网站建设培训学校网站程序定制开发流程
  • 宣传旅游网站建设的观点是什么资阳网站建设方案
  • ui设计与网站建设怎么建设一个手机网站
  • 网站建设加推广优化网站移动端开发公司
  • 猪八戒网站开发电子商务公司取名字参考大全
  • 酒泉手机网站建设大连网站如何制作
  • 做网站点子免费做简历的软件网站
  • 刘涛做代言的那个网站设计与制作
  • 专业网站建站星辰wordpress主题
  • 淄博个人网站建设天津网站制作机玩法部
  • 帮人做图挣外快的网站seo优化教学视频
  • 做房产中介需要有内部网站吗烟台开发区网站建设
  • 网站资质优化网站备案密码使用
  • 廊坊营销网站团队网站推广报告
  • 商品网站模板多语言企业网站模板
  • 佛山网页制作设计东莞seo推广机构帖子
  • 公司网站开发费用如何入账网站开发与设计实训总结两千字
  • 生物网站模板在线crm厂商