ABP-VNext 用户权限管理系统实战06---实体的创建标准及迁移

abp,vnext · 浏览次数 : 15

小编点评

**实体类 Order 的字段描述** | 字段名 | 类型 | 长度 | 说明 | 表名 | 表中索引 | |---|---|---|---|---|---| | VoucherCode | NVARCHAR(32) | 32 | 单据编号 | t_voucher_order | 索引 | | WarehouseId | NVARCHAR(36) | 36 | 发货仓库 | t_voucher_order | 索引 | | WarehouseName | NVARCHAR(50) | 50 | 仓库名称 | t_voucher_order | 索引 | | SupplierId | NVARCHAR(36) | 36 | 供应商编码 | t_voucher_order | 索引 | | SupplierName | NVARCHAR(20) | 20 | 供应商名称 | t_voucher_order | 索引 | | CreatedOn | DATETIME | - | 申请时间 | t_voucher_order | 索引 | | CreatedBy | NVARCHAR(20) | 20 | 申请人 | t_voucher_order | 索引 | | AuditOn | DATETIME | - | 审核时间 | t_voucher_order | 索引 | | AuditBy | NVARCHAR(20) | 20 | 审核人 | t_voucher_order | 索引 | | Status | ENUM('0', '1', '2', '3', '5') | - | 订单状态 | t_voucher_order | 索引 | | IsDeleted | BIT | - | 删除标识 | t_voucher_order | 索引 | | TenantId | NVARCHAR(11) | 11 | 租户ID | t_tenant | 索引 |

正文

在apb-vnext的实体的创建中可以确实字段的长度、说明、对应的表、表中给字段加的索引

以项目中的订单表为例,如下:

 [Comment("订单主表")]
 [Table("t_voucher_order")]
 [Index(nameof(VoucherCode))]
public class Order : AuditedAggregateRoot<Guid>, ISoftDelete, IMultiTenant { public Order() { } public Order(Guid id) { this.Id = id; } /// <summary> /// 单据编号 /// </summary> [MaxLength(32)] [Comment("单据编号")] public string VoucherCode { get; set; } /// <summary> /// 发货仓库 /// </summary> [MaxLength(36)] [Comment("发货仓库")] public Guid WarehouseId { get; set; } /// <summary> /// 发货仓库 /// </summary> [MaxLength(50)] [Comment("仓库名称")] public string WarehouseName { get; set; } /// <summary> /// 供应商编码 /// </summary> [MaxLength(36)] [Comment("供应商编码")] public Guid? SupplierId { get; set; } /// <summary> /// 供应商名称 /// </summary> [MaxLength(20)] [Comment("供应商名称")] public string SupplierName { get; set; } /// <summary> /// 申请时间 /// </summary> [Comment("申请时间")] public DateTime CreatedOn { get; set; } /// <summary> /// 申请人 /// </summary> [MaxLength(20)] [Comment("申请人")] public string CreatedBy { get; set; } /// <summary> /// 审核时间 /// </summary> [Comment("审核时间")] public DateTime? AuditOn { get; set; } /// <summary> /// 审核人 /// </summary> [MaxLength(20)] [Comment("审核人")] public string AuditBy { get; set; } /// <summary> /// 订单状态:0 暂存 1已作废 2已提交 3已驳回 5已审核 /// </summary> [Comment("订单状态")] public OrderStatusEnum Status { get; set; } /// <summary> /// 删除标识 /// </summary> [Comment("删除标识")] public bool IsDeleted { get; set; } = false; public Guid? TenantId { get; set; } }

迁移表到数据库后看效果

 Add-Migration order202405110001

 表生成的效果

 索引创建效果:

 

与ABP-VNext 用户权限管理系统实战06---实体的创建标准及迁移相似的内容:

ABP-VNext 用户权限管理系统实战06---实体的创建标准及迁移

在apb-vnext的实体的创建中可以确实字段的长度、说明、对应的表、表中给字段加的索引 以项目中的订单表为例,如下: [Comment("订单主表")] [Table("t_voucher_order")] [Index(nameof(VoucherCode))] public class Ord

迁移现有用户数据到ABP vNext

## 前言 使用 ABP vNext(下文简称 ABP)时,通常都是从 cli 开始新建模板,从一个空项目开始。对已经存续的项目来说,现有的数据,特别是用户等核心数据需要进行迁移。 老的项目,随着规模越来越大,每次修改都需要更改非常多地方,最重要的是,共用数据库使得维护起来需要小心翼翼。为了后续维护

Abp vNext 入门到放弃系列

文章目录 1.模块介绍 2.模块加载机制 3.依赖注入 4.AutoMapper-- 待定 5.本地化--待定 6.模型验证--待定 7.异常处理--待定 8.缓存 9.动态代理和拦截 10.分布式锁 11.领域驱动设计 Abp vNext Pro Abp Vnext Pro Github地址 的

Abp vNext 依赖注入

文章目录 介绍 ABP的依赖注入系统是基于Microsoft的依赖注入扩展库(Microsoft.Extensions.DependencyInjection nuget包)开发的。所以我们采用dotnet自带的注入方式也是支持的。 由于ABP是一个模块化框架,因此每个模块都定义它自己的服务并在它自

Abp vNext 模块加载机制

文章目录 生命周期 PreConfigureServices 添加依赖注入或者其它配置之前 ConfigureServices 添加依赖注入或者其它配置 PostConfigureServices 添加依赖注入或者其它配置之后 OnPreApplicationInitialization 初始化所有

OData WebAPI实践-与ABP vNext集成

本文属于 OData 系列文章 ABP 是一个流行的 ASP. NET 开发框架,旧版的的 ABP 已经能够非常好的支持了 OData ,并提供了对应的 OData 包。 ABP vNext 是一个重新设计的,面向微服务的框架,提供了一些非常有用的特性,包括分页查询等但是它并不能原生支持 OData

Skywalking APM监控系列(一丶.NET5.0+接入Skywalking监听)

前言 新项目采用的abp vnext的微服务模块化架构,所以把应用的服务拆成了很多独立模块 在初期,我们通过日志还能跟踪到问题, 后期服务越来越多(大约扩充到了十几个),随着调用链路越来越深 ,问题也越来越能排查了. 往往入口报错之后,要跟好几个服务的日志 才能找到最终节点. 所以考虑引入Skywa

abp 创建DDD项目

abp 创建DDD项目 我和我的伙伴在搭建框架的基础框架,找了很多框架,最后选择用abp作为DDD的规范标准。 创建项目 1.命令行中安装 ABP CLI: dotnet tool install -g Volo.Abp.Cli 2.查看abp 版本: abp -v 3.如果版本过低,更新版本,目前

aspnetcore插件开发dll热加载 二

这一篇文章应该是个总结。 投简历的时候是不是有人问我有没有abp的开发经历,汗颜! 在各位大神的尝试及自己的总结下,还是实现了业务和主机服务分离,通过dll动态的加载卸载,控制器动态的删除添加。 项目如下: 演示效果: 下面就是代码部分: 重点 1.IActionDescriptorChangePr