1.ABP使用的是EF对接数据库,对接数据库有三种方式,DBFirst,ModelFirst,CodeFirst。ABP使用的是CodeFirst。
具体如何使用方法自己百度,下面分析这三种方式的优缺点:
Database-First模式明显性能会差点,但是它很适合初学者,或者是比较急的小型项目。还有一点,我们在做项目时可能不容易体会到它的好处,但如果做数据库结构比较成熟稳定的产品时,我们可以很轻松的使用数据库生成实体模型,从而实现快速开发。
Model-First模式优点是开发人员能够在模型设计完成后,可以利用VS等工具快速生成数据库脚本。缺点是设计模型时完全了解数据库的结构,在模型中手动添加表关系,并且生成的脚本有点不简洁。
Code-First模式优点是性能比较好,且代码较少冗余。不过它的缺点也有很多,由于都是代码编写的,比如更新数据库。
2.ABP使用CodeFirst 建表。
在core层下新建一个文件夹,用来存放实体类。我们给文件夹取名dic。然后在文件夹里新建.cs文件(实体类)。
3.在实体类里建字段。
4.实体类里可以添加注解,这里列举一些基本的,具体什么意思怎么使用大家去百度。
Table 数据表名称
[Table("table")]
Key 主键
[Key]
Column 列名,列序,列类型
[Column("col",TypeName ="Money")]
Required 必填项
[Required(ErrorMessage = "{0}是必填项")]
MaxLength 最大长度
[MaxLength(50,ErrorMessage ="字段长度不可超过50")]
MinLength 最小长度
[MaxLength(50,ErrorMessage ="字段长度不可超过50"),MinLength(2)]
NotMapped不会有映射数据字段
[NotMapped]
Index 指定索引字段,并可设置字段名称,索引的顺序,是否具有唯一值特性
[Index]
DatabaseGenerated 由数据库自行管理或运算
[DatabaseGenerated( DatabaseGeneratedOption.Identity)]
[Timestamp][ConcurrencyCheck] 用于数据并发
5.打开EntityFramework层下面有个EntityFramework文件夹下面有一个ModelDbContext文件。写入代码。
6.使用codefirst更新实体类到数据库。具体如何使用办法,请自行百度。
创建migration可以理解为创建sql语句 Add—Migration 。如果使用前面的重命名工具,把数据库删掉以后重新更新一下数据库再执行。否则会报有显示迁移挂起的错。
执行Update-Database -Verbose 更新到数据库。
7.数据库更新成功。