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
  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
EF Core框架中,数据库表的列名和实体类的属性名不一致是一个常见的情况。这种情况可能出现在数据库设计时,为了符合统一的命名规范,数据库表的列名可能使用下划线分隔,而实体类的属性名可能使用驼峰命名法。 为了解决这个问题,EF Core提供了一些特性和约定,可以映射数据库列名和实体类属性名之间的关系。其中最常用的特性是`Column`和`Table`特性。 `Column`特性用于将实体类的属性映射到数据库表的列名。例如,如果数据库表中的列名是`first_name`,而实体类中的属性名是`FirstName`,可以在实体类的属性上使用`[Column("first_name")]`特性来进行映射。 `Table`特性用于将实体类映射到数据库表的名称。如果数据库表的名称与实体类的名称不一致,可以在实体类上使用`[Table("table_name")]`特性来指定对应的表名。 除了特性,EF Core还支持一些约定,根据命名规则自动进行映射。例如,默认情况下,EF Core会将实体类的属性名映射到数据库表的列名,只需保证它们的名称一致即可。如果数据库列名是多个单词的组合,使用下划线分隔,EF Core会将其转换为驼峰命名法。 总结来说,EF Core提供了特性和约定来处理数据库列名和实体类列名不一致的情况。通过使用`Column`和`Table`特性、遵循命名约定,可以实现灵活的映射,确保数据在实体类和数据库表之间的正确转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

上进的宋晓刚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值