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

本文由宋晓刚带领读者进入EF Core的世界,讲解如何通过EF Core进行数据库操作。首先介绍了ORM框架的基本概念,然后详细阐述了数据库先行(DFirst)和代码先行(CodeFirst)两种方法,包括数据库实体类的生成、数据库迁移过程以及在遇到问题时的解决方案。文章以C#和SQL Server为例,提供了具体的操作步骤。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上进的宋晓刚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值