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.EntityFramewo