ABP-VNext 用户权限管理系统实战06---实体的创建标准及迁移
在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---实体的创建标准及迁移的更多相关文章
- SpringSecurity权限管理系统实战—八、AOP 记录用户、异常日志
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—一、项目简介和开发环境准备
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—二、日志、接口文档等实现
系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...
- SpringSecurity权限管理系统实战—四、整合SpringSecurity(上)
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—六、SpringSecurity整合jwt
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—七、处理一些问题
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- SpringSecurity权限管理系统实战—九、数据权限的配置
目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...
- Vue Abp vNext用户登录(Cookie)
因为Abp vNext没找到Vue的模板,网上也没找到相关vNext的例子,只能自己试着写写,asp.net core abp vue都是刚学不久,所以很粗糙也可能有错误的地方,如果您看到请指正,谢谢 ...
- SpringSecurity权限管理系统实战—五、整合SpringSecurity(下)
系列目录 前言 上篇文章SpringSecurity整合了一半,这次把另一半整完,所以本篇的序号接着上一篇. 七.自定义用户信息 前面我们登录都是用的指定的用户名和密码或者是springsecurit ...
- SpringSecurity权限管理系统实战—三、主要页面及接口实现
系列目录 前言 后端五分钟,前端半小时.. 每次写js都头疼. 自己写前端是不可能的,这辈子不可能自己写前端的,只能找找别人的模板才能维持的了生存这样子.github,gitee上的模板又多,帮助文档 ...
随机推荐
- ChatGPT商用网站源码+支持ai绘画(Midjourney)+GPT4.0+GPT3.5key绘画+Prompt角色+实时语音识别输入+后台一键版本更新!
ChatGPT商用网站源码+支持ai绘画(Midjourney)+GPT4.0+GPT3.5key绘画+Prompt角色+实时语音识别输入+后台一键版本更新! 1.网站系统源码介绍: 程序已支持Cha ...
- C++ Break、Continue 和 数组操作详解
C++ Break 和 Continue break 语句还可以用来跳出循环. 在以下示例中,当 i 等于 4 时跳出循环: for (int i = 0; i < 10; i++) { if ...
- 基于EtherNet/IP实现欧姆龙NX系列PLC通信
1.引言 工业以太网协议 (Ethernet/IP) 是由ODVA所开发并得到了罗克韦尔自动化的强大支持.它使用已用于ControlNet和DeviceNet的控制和信息协议 (CIP) 为应用层协议 ...
- Qt + mupdf 显示PDF,支持翻页
使用Qt + mupdf 实现PDF阅读器,支持翻页(上一页.下一页) 思路: PDF阅读器:使用mupdf,将PDF文件拆分成单个page页,将page页转为QImage图像,使用QListWidg ...
- Qt使用https协议发送带参数的post请求
背景: 现在公司项目需要做一个检测更新的功能,通过访问后台接口,判断是否需要更新. 后台接口是 https 协议的,接口需要post请求,需要带参数,来判断是哪个软件需要做检测更新的操作. 客户端软件 ...
- Python设计模式----3.单例模式
单例模式:主要目的是确保某一个类只有一个实例存在 代码: class A(): def __new__(self, *args, **kwargs): if not hasattr(self, 'na ...
- HarmonyOS 设备管理开发:USB 服务开发指导
基本概念 USB服务是应用访问底层的一种设备抽象概念.开发者根据提供的USB API,可以获取设备列表.控制设备访问权限.以及与连接的设备进行数据传输.控制命令传输等. 运作机制 USB服务系统包 ...
- stack-c++
#include <iostream> using namespace std; template <typename T> class Stack{ private: int ...
- nginx重新整理——————http请求的11个阶段中的preaccess[十四]
前言 简单整理一下preaccess. 正文 主要是介绍一下上文提及到的limit_req以及limit_conn. 里面是http_limit_conn_module 默认编译进去. 生效范围: 全 ...
- 重新点亮shell————管道和重定向[二]
前言 简单介绍一下管道和重定向. 正文 管道和信号一样,是进程通信的方式之一 管道符是"|",将前一个命令执行的结果传递给后面的命令. 比如说: ls -l | more 就是第一 ...