abp vnext dto用法。 电脑版发表于:2020/12/16 10:19 为不同的操作创建不同的dto是abp nvext推荐的做法。官方的解释如下: tn2>我们可以在创建和更新操作间分享 (重用) 相同的DTO. 虽然可以这么做, 但我们推荐为这些操作创建不同的DTOs, 因为我们发现随着时间的推移, 它们通常会变得有差异. 所以, 与紧耦合相比, 代码重复也是合理的. ### 比如基础的dto,查询的dto,添加的dto,更新的dto单独编写。示例如下: tn2#AuthorDto: ``` using System; using Volo.Abp.Application.Dtos; namespace Acme.BookStore.Authors { public class AuthorDto : EntityDto<Guid> { public string Name { get; set; } public DateTime BirthDate { get; set; } public string ShortBio { get; set; } } } ``` EntityDto<T> 只有一个类型为指定泛型参数的 Id 属性. 你可以自己创建 Id 属性, 而不是继承自 EntityDto<T> tn2#GetAuthorListDto: ``` using Volo.Abp.Application.Dtos; namespace Acme.BookStore.Authors { public class GetAuthorListDto : PagedAndSortedResultRequestDto { public string Filter { get; set; } } } ``` Filter 用于搜索作者. 它可以是 null (或空字符串) 以获得所有用户. PagedAndSortedResultRequestDto 具有标准分页和排序属性: int MaxResultCount, int SkipCount 和 string Sorting. ABP 框架拥有这些基本的DTO类以简化并标准化你的DTOs. 参阅 DTO 文档 获得所有DTO类的详细信息. tn2#CreateAuthorDto: ``` using System; using System.ComponentModel.DataAnnotations; namespace Acme.BookStore.Authors { public class CreateAuthorDto { [Required] [StringLength(AuthorConsts.MaxNameLength)] public string Name { get; set; } [Required] public DateTime BirthDate { get; set; } public string ShortBio { get; set; } } } ``` 数据标记特性可以用来验证DTO. 参阅 验证文档 获得详细信息. tn2#UpdateAuthorDto: ``` using System; using System.ComponentModel.DataAnnotations; namespace Acme.BookStore.Authors { public class UpdateAuthorDto { [Required] [StringLength(AuthorConsts.MaxNameLength)] public string Name { get; set; } [Required] public DateTime BirthDate { get; set; } public string ShortBio { get; set; } } } ``` 官方文档:https://docs.abp.io/zh-Hans/abp/latest/Tutorials/Part-8?UI=MVC&DB=EF