您当前的位置: 首页 > 

寒冰屋

暂无认证

  • 0浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Abp框架默认表中如何添加字段

寒冰屋 发布时间:2020-04-19 16:48:34 ,浏览量:0

目录

介绍

说明

具体实现

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。

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0909s