ABP-ZERO 5.3.0 使用从零开始(四)建表(codefirst)

1.ABP使用的是EF对接数据库,对接数据库有三种方式,DBFirst,ModelFirst,CodeFirst。ABP使用的是CodeFirst。

具体如何使用方法自己百度,下面分析这三种方式的优缺点:

        Database-First模式明显性能会差点,但是它很适合初学者,或者是比较急的小型项目。还有一点,我们在做项目时可能不容易体会到它的好处,但如果做数据库结构比较成熟稳定的产品时,我们可以很轻松的使用数据库生成实体模型,从而实现快速开发。

        Model-First模式优点是开发人员能够在模型设计完成后,可以利用VS等工具快速生成数据库脚本。缺点是设计模型时完全了解数据库的结构,在模型中手动添加表关系,并且生成的脚本有点不简洁。  

        Code-First模式优点是性能比较好,且代码较少冗余。不过它的缺点也有很多,由于都是代码编写的,比如更新数据库。

2.ABP使用CodeFirst 建表。

在core层下新建一个文件夹,用来存放实体类。我们给文件夹取名dic。然后在文件夹里新建.cs文件(实体类)。

ABP-ZERO 5.3.0 使用从零开始(四)建表(codefirst)

3.在实体类里建字段。

ABP-ZERO 5.3.0 使用从零开始(四)建表(codefirst)

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文件。写入代码。

ABP-ZERO 5.3.0 使用从零开始(四)建表(codefirst)

6.使用codefirst更新实体类到数据库。具体如何使用办法,请自行百度。

创建migration可以理解为创建sql语句   Add—Migration  。如果使用前面的重命名工具,把数据库删掉以后重新更新一下数据库再执行。否则会报有显示迁移挂起的错。

ABP-ZERO 5.3.0 使用从零开始(四)建表(codefirst)

执行Update-Database  -Verbose 更新到数据库。

ABP-ZERO 5.3.0 使用从零开始(四)建表(codefirst)

7.数据库更新成功。

ABP-ZERO 5.3.0 使用从零开始(四)建表(codefirst)

 

 

上一篇:CodeFirst


下一篇:EF - CodeFirst 详细操作流程