EF Core开发模式之Code First

Posted ndolls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF Core开发模式之Code First相关的知识,希望对你有一定的参考价值。

  Code First顾名思义,代码为先。首先编写完相关的实体类DbContext派生类,然后通过映射关系自动在数据库中完成数据库表的创建。

  本例中创建一个班级和学生的管理,主要有班级类MyClass和学生类Student。其中班级类MyClass中可包含多名学生Student,两者之间是一对多的引用关系。

一、环境准备

1.开发环境:.NET Core 3.1

2.IDE工具:Visual Studio 2019

3.数据库:SQL Server 2012

二、添加包引用

需要以下包的引用:

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Design

可通过dotnet cli命令行或VS的nuget包管理器实现相关包的添加。此处以dotnet cli命令行添加Design包为例。在项目根目录打开命令行,执行dotnet add package {要引用的包}即可。

技术图片

三、编程程序代码

1.实体类代码

技术图片

 

 2.DbContext派生类代码

 技术图片

 一、创建迁移并更新数据库

1.通过命令行方式,在项目根目录执行命令:dotnet ef migrations add Test,创建名为Test的迁移任务;

  命令执行成功后,在项目中会自动产生一个Migrations文件夹,其中自动生成的CSharp代码文件就是用于更新数据库的。

技术图片

 

 2.继续执行命令:dotnet ef database update,根据项目中的实体映射关系,更新数据库(包括表结构、表直接的关系)。

技术图片 

【注】一个项目中如果有多个DbContext,迁移会报“build failed”错误。

【注】在开发过程中,如果实体模型类又发生了变动(如增加字段、修改字段、删除字段等),可以重新创建一个迁移,并执行迁移即可。

以上是关于EF Core开发模式之Code First的主要内容,如果未能解决你的问题,请参考以下文章

8天掌握EF的Code First开发系列之2 简单的CRUD操作

ef core code first 模式提示"可能会导致循环或多重级联路径"问题

8天掌握EF的Code First开发系列之3 管理数据库创建,填充种子数据以及LINQ操作详解

asp.net core 使用EF7 Code First 创建数据库,同时使用命令创建数据库(本来想数据迁移 没有成功,只能将标题搞成这个。)

Code First开发方式

8天掌握EF的Code First开发