abp(net core)+easyui+efcore仓储系统——创建应用服务(五)

abp(net core)+easyui+efcore仓储系统目录

abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一)

abp(net core)+easyui+efcore仓储系统——解决方案介绍(二)

abp(net core)+easyui+efcore仓储系统——领域层创建实体(三)

 abp(net core)+easyui+efcore仓储系统——定义仓储并实现 (四)

 

      在上一篇文章中学习了ABP的仓储(Repository)功能,Repository对数据库进行增删改查操作。在这一篇文章中我们主要了解用服务层。

一、解释下用服务层

     应用服务用于将领域(业务)逻辑暴露给展现层。展现层通过传入DTO(数据传输对象)参数来调用应用服务,而应用服务通过领域对象来执行相应的业务逻辑并且将DTO返回给展现层。因此,展现层和领域层将被完全隔离开来。
以下几点,在创建应用服务时需要注意:

在ABP中,一个应用服务需要实现IApplicationService接口,最好的实践是针对每个应用服务都创建相应继承自IApplicationService的接口。(通过继承该接口,ABP会自动帮助依赖注入)

ABP为IApplicationService提供了默认的实现ApplicationService,该基类提供了方便的日志记录和本地化功能。实现应用服务的时候继承自ApplicationService并实现定义的接口即可。

ABP中,一个应用服务方法默认是一个工作单元(Unit of Work)。ABP针对UOW模式自动进行数据库的连接及事务管理,且会自动保存数据修改。

二、定义应用服务接口需要用到的DTO

    1. 在Visual Studio 2017的“解决方案资源管理器”中,右键单击“ABP.TPLMS.Application”项目。 选择“添加” > “新建文件夹”。

    2.将文件夹命名为“Modules”。

    3. 右键单击“Modules”文件夹,选择“添加” > “新建文件夹”。将文件夹重命名为“Dto”。如下图。

 

abp(net core)+easyui+efcore仓储系统——创建应用服务(五)

      4. 右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 ModuleDto,然后选择“添加”。代码如下。

using Abp.Application.Services.Dto; using Abp.AutoMapper; using ABP.TPLMS.Entitys; using System; using System.Collections.Generic; using System.Text; namespace ABP.TPLMS.Modules.Dto { [AutoMapFrom(typeof(Module))] public class ModuleDto:EntityDto<long> { public string DisplayName { get; set; } public string Name { get; set; } public string Url { get; set; } public string HotKey { get; set; } public int ParentId { get; set; } public bool RequiresAuthentication { get; set; } public bool IsAutoExpand { get; set; } public string IconName { get; set; } public int Status { get; set; } public string ParentName { get; set; } public string RequiredPermissionName { get; set; } public int SortNo { get; set; } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsydw.html