EF Core实操,数据库生成实体,迁移

EF Core实操,数据库生成实体,迁移

大家好,我是行不更名,坐不改姓的宋晓刚,下面将带领大家进入C#编程EF Core数据库基础入门知识,如何连接数据库,如何编写代码,跟上我的步伐进入EF Core数据库下的世界。
家人们,如果有什么不懂,可以留言,或者加我联系方式,一起进入微软技术的开拓。

  • 微信:15319589104
  • QQ: 2981345658
    EF Core (Entity Framework Core) 是一个开源的、轻量级的、灵活的对象关系映射(ORM)库,它是.NET平台上用于数据访问的对象关系映射器。EF Core 支持多种数据库,包括 SQL Server、MySQL、PostgreSQL、SQLite 等。

在开始使用 EF Core 进行数据库操作之前,通常需要先定义实体类,这些实体类对应数据库中的表。然后,通过迁移(Migrations)来创建或更新数据库结构。

一、介绍:

1.0O/RM框架:存放在专门的对象–映射文件,一种框架模式,ORM就是专门用来操作数据库的。

正常访问数据库:

在这里插入图片描述

  • 1.编写大量的SQL语句
  • 2.代码量相对较大

2.0ORM访问数据库解决:

在这里插入图片描述

  • 面向对象的思想去操作数据库。
  • 上手简单,能实现功能,必然还是要转换成Sql语句,必然会有反射。
  • 性能出现了问题,缓存可以进行解决。

3.0ORM快速上手EFCore

  • 1.0 Dfirst 数据库先行(先创建数据库,在生成相对的实体类)

  • 2.0 CodeFirst 迁移文件,代码先行,只管代码,只关注对象生成数据库(写实体类,通过命令进行数据库同步)

3.1安装3个Nugut包

Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools

3.2命令执行:

1.0.Net7以下版本执行:

Scaffold-DbContext "Data Source=PC-202206030027;Initial Catalog=CustomerDB;User ID=sa;Password=sa123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

2.0.Net7执行:

Scaffold-DbContext "Data Source=PC-202206030027;Initial Catalog=CustomerDB_EFCORE;User ID=sa;Password=sa123;TrustServerCertificate=true" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models  -Force

注意:数据库链接字符串中需要加入一个TrustServerCertificate=true,俩个命令不同的方式,是因为多了TrustServerCertificate=true

命令说明:

-OutputDir *** 实体文件所存放的文件目录
-ContextDir *** DbContext文件存放的目录
-Context *** DbContext文件名
-Schemas *** 需要生成实体数据的数据表所在的模式
-Tables *** 需要生成实体数据的数据表的集合
-DataAnnotations
-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
-Force 强制执行,重写已经存在的实体文件

二、实操:

Db数据库先行

1.0在Sql server中添加自己需要的数据库,表,以及字段。

在这里插入图片描述

2.0创建控制台应用程序,我们这里选择不使用顶级语句,这样Program中会生成主类Program。

在这里插入图片描述

3.0安装EF Core的Nugut包。

Microsoft.EntityFrameworkCore
Microsoft.EntityFr