Abp框架默认表中如何添加字段
目录
介绍
说明
具体实现
1、扩展抽象实体
2、扩展非抽象实体
总结
介绍
Abp现在是比较流行的一个.net的基于ddd思想的框架,所有很多公司也开始想要使用,并在招聘中会要求应聘者会abp框架。Abp框架默认设计好了一些常用的表架构,但是在实际的项目中必然会出现默认表的字段不满足需求,需要添加新字段的问题。本文将简单价绍如果向默认的表中添加字段。
说明
系统表分为两类,一类是定义为抽象类的,如AbpRoles、AbpUsers;而另一类是普通的类,如AbpOrganizationUnitRoles。具体就不一一说明,您可以根据需要扩展的表,到源码中查看即可。所有在向表中添加字段时,也就分为了两种方法。
具体实现
1、扩展抽象实体
这里我们以用户表为例。直接看代码,如下
在Core项目下的Authorization文件夹下找到User类,添加需要的字段即可。
接下来只需要在【程序包管理器控制台】下执行以下命令即可。
注意选择【默认项目】为EFCore的,另外就是,迁移文件的名字是自定义的。
如果迁移文件添加成功了,那么在执行update-database命令即可完成数据库更新。
现在我们来看看生成数据库表是否真的发生了变化。如下图
PS:如果需要修改原字段属性,通过override重写即可,这里就不多解释了。
2、扩展非抽象实体
这里我打算使用组织单元(AbpOrganizationUnitRoles)表来作说明(官方文档中是使用的AbpEditions)。
首先我们需要在Core项目下添加一个Organizations文件夹,这个非常重要,这一点也是很多类似博客中没有提到的,然后在此文件夹下添加一个自定义类MyOrganization。如下图
特别说明:至于为什么费用添加这个文件夹,因为原代码结构中OrganizationUnitRole类的定义就是在Organizations文件夹下的,这应该是abp框架默认的一个中约束。您也可以看看上一小节提到的用户表,其源代码中也是放在Authorization/Users文件夹下的。我们可以看看源代码中OrganizationUnitRole类的截图,如下
让我们继续下面的步骤。定义好自定类,并添加自定义的字段之后,和抽象实体扩展不同的是,我们需要先到EntityFrameworkCore项目下找到数据库上下文,并添加DbSet 属性,如下图
接下来就是添加迁移文件,在添加成功后,我们需要对其稍作调整,如下图
这也就可以在生成表的时候,把实体替换为我们自定义的类了。然后执行更新数据库命令,我们看看数据库表的生成情况,如下图
总结
这里我仅仅介绍了如果向abp框架默认表中添加新字段,对于如何在前端使用以及扩展表有默认字段等如何处理,可以参考如下链接:https://github.com/aspnetzero/documents/blob/v6.8.0/doc/Extending-Existing-Entities.md。
Abp框架默认表中如何添加字段相关推荐
- 在mysql中如何建立性别约束_在Access2010数据库中,要在表中建立“性别”字段,并按与要求用逻辑值表示,其数据类型应当是()_学小易找答案...
[填空题]在Access2010数据库中,表结构的设计和维护是在表的()视图中完成的. [单选题]在Access2010数据库的下列字段类型中,字段大小不固定的是() [单选题]对Access2010 ...
- 如何向 Oracle 表中的 Date 字段插入日期及时间
如何向 Oracle 表中的 Date 字段插入日期及时间 Oracle中与sqlserver 插入日期型数据时,有比较大的区别.sqlserver中,直接把日期型数据用单引号括起来就可以,而Ora ...
- SQL 触发器 当修改TEST表中的F1字段时,同时根据条件修改F2字段
Code --当外修改TEST表中的F1字段时,同时根据条件修改F2字段 ALTER TRIGGER [dbo].[updatetest1] ON [dbo].[TEST] FOR INSERT, ...
- mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据
本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...
- 修改Mysql表中自增字段的初始值
修改Mysql表中自增字段的初始值: ALTER TABLE employee AUTO_INCREMENT=2; 解释:将表employee自增字段的初始值设置为2
- Sqlserver别太信任SysComments表中的text字段
1.用SysComments的原因 最近新模块的开发,需要更改和新增的存储过程比较多,为了同步开发环境和测试环境的存储过程,能在更新程序后,马上能整理出更改的存储过程脚本,并更新到测试DB服务器上,我 ...
- 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?
编辑器加载中... 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?多表联结查询:select rbd.RBDID, rbd.ProductCode,p.ProductCnName,p. ...
- WSS 数据库表中的 UserInfo 表中的 tp_SystemId 字段的使用
在 WSS 的数据库中,UserInfo表的 tp_SystemId 记录的是用户登录验证时需要用到的数据,是此用户在 AD( Active Directory ) 中的 SID( Security ...
- sql一个表中两个字段合并求和
sql一个表中两个字段,合并求和 SELECT SUM(字段a+'.'+字段b) as total from TABLE 转载于:https://www.cnblogs.com/lovewyc131 ...
最新文章
- Mantis 缺陷管理系统配置与安装
- VTK:几何对象之PlatonicSolids
- BigDecimal踩过的大坑
- 在Eclipse中使用Git
- 设计模式——解释器模式
- 花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层
- ubuntu 18.04 conda 环境中编译 pytorch
- python代码中函有中文报错的解决方法
- Windows 搭建 FTP 服务器
- 实现简易植物大战僵尸修改器的历程(2)
- KMP --算法竞赛(33)
- nginx 的proxy 时间讲解
- 【unity】遇到Multiple precompiled assemblies with the same name的解决方案
- 语音合成——闽南语合成(1)
- Swift语言难度大吗?适不适合零基础学习?
- tp5微信公众号开发(2) ---- 微信被动回复,图文回复,图片回复等 demo实例
- NPDP知识推送-第七章产品生周期管理(4)
- PHP定义梯形,利用css来画出各种样式不同的梯形
- 【密码学原理与实践】【Chapter 1】【导论】
- 东湖高新区申报2023年融资租赁公司等类金融机构财政支持政策解读
热门文章
- 对于局部变量_LabVIEW小白入门——局部变量
- python复利计算函数_PyThon编程入门:了解python format格式化函数的使用
- pythongui 三维_python图形GUI基本示例
- python程序设计实验指导书_“Python程序设计”实验指导书.pdf
- mysql表空间不足_MySQL Innodb表空间不足的处理方法 风好大
- qmenubar 添加按钮_QMenuBar,QMenu和QAction(QMenuBar, QMenu QAction)
- Python正则表达式简单说明(菜鸟教程里面的说明)
- 提升KVM异构虚拟机启动效率:透传(pass-through)、DMA映射(VFIO、PCI、IOMMU)、virtio-balloon、异步DMA映射、预处理
- __attribute__((format(printf,m,n)))
- KR C与ANSI C