目录

介绍

说明

具体实现

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框架默认表中如何添加字段相关推荐

  1. 在mysql中如何建立性别约束_在Access2010数据库中,要在表中建立“性别”字段,并按与要求用逻辑值表示,其数据类型应当是()_学小易找答案...

    [填空题]在Access2010数据库中,表结构的设计和维护是在表的()视图中完成的. [单选题]在Access2010数据库的下列字段类型中,字段大小不固定的是() [单选题]对Access2010 ...

  2. 如何向 Oracle 表中的 Date 字段插入日期及时间

    如何向 Oracle 表中的 Date 字段插入日期及时间  Oracle中与sqlserver 插入日期型数据时,有比较大的区别.sqlserver中,直接把日期型数据用单引号括起来就可以,而Ora ...

  3. SQL 触发器 当修改TEST表中的F1字段时,同时根据条件修改F2字段

    Code --当外修改TEST表中的F1字段时,同时根据条件修改F2字段 ALTER TRIGGER [dbo].[updatetest1] ON [dbo].[TEST]  FOR INSERT,  ...

  4. mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

  5. 修改Mysql表中自增字段的初始值

    修改Mysql表中自增字段的初始值: ALTER TABLE employee AUTO_INCREMENT=2; 解释:将表employee自增字段的初始值设置为2

  6. Sqlserver别太信任SysComments表中的text字段

    1.用SysComments的原因 最近新模块的开发,需要更改和新增的存储过程比较多,为了同步开发环境和测试环境的存储过程,能在更新程序后,马上能整理出更改的存储过程脚本,并更新到测试DB服务器上,我 ...

  7. 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?

    编辑器加载中... 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?多表联结查询:select rbd.RBDID, rbd.ProductCode,p.ProductCnName,p. ...

  8. WSS 数据库表中的 UserInfo 表中的 tp_SystemId 字段的使用

    在 WSS 的数据库中,UserInfo表的 tp_SystemId 记录的是用户登录验证时需要用到的数据,是此用户在 AD( Active Directory ) 中的 SID( Security ...

  9. sql一个表中两个字段合并求和

    sql一个表中两个字段,合并求和 SELECT SUM(字段a+'.'+字段b) as total  from TABLE 转载于:https://www.cnblogs.com/lovewyc131 ...

最新文章

  1. Mantis 缺陷管理系统配置与安装
  2. VTK:几何对象之PlatonicSolids
  3. BigDecimal踩过的大坑
  4. 在Eclipse中使用Git
  5. 设计模式——解释器模式
  6. 花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层
  7. ubuntu 18.04 conda 环境中编译 pytorch
  8. python代码中函有中文报错的解决方法
  9. Windows 搭建 FTP 服务器
  10. 实现简易植物大战僵尸修改器的历程(2)
  11. KMP --算法竞赛(33)
  12. nginx 的proxy 时间讲解
  13. 【unity】遇到Multiple precompiled assemblies with the same name的解决方案
  14. 语音合成——闽南语合成(1)
  15. Swift语言难度大吗?适不适合零基础学习?
  16. tp5微信公众号开发(2) ---- 微信被动回复,图文回复,图片回复等 demo实例
  17. NPDP知识推送-第七章产品生周期管理(4)
  18. PHP定义梯形,利用css来画出各种样式不同的梯形
  19. 【密码学原理与实践】【Chapter 1】【导论】
  20. 东湖高新区申报2023年融资租赁公司等类金融机构财政支持政策解读

热门文章

  1. 对于局部变量_LabVIEW小白入门——局部变量
  2. python复利计算函数_PyThon编程入门:了解python format格式化函数的使用
  3. pythongui 三维_python图形GUI基本示例
  4. python程序设计实验指导书_“Python程序设计”实验指导书.pdf
  5. mysql表空间不足_MySQL Innodb表空间不足的处理方法 风好大
  6. qmenubar 添加按钮_QMenuBar,QMenu和QAction(QMenuBar, QMenu QAction)
  7. Python正则表达式简单说明(菜鸟教程里面的说明)
  8. 提升KVM异构虚拟机启动效率:透传(pass-through)、DMA映射(VFIO、PCI、IOMMU)、virtio-balloon、异步DMA映射、预处理
  9. __attribute__((format(printf,m,n)))
  10. KR C与ANSI C