EFCore DbFirst从数据库生成实体类

1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台”

分别安装以下几个包

Mysql 版本:

Install-Package MySql.Data.EntityFrameworkCore -Pre
Install-Package Pomelo.EntityFrameworkCore.MySql
Install-Package Microsoft.EntityFrameworkCore.Tools

Sql server 版本:

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

2.在程序包包管理器控制台 中执行以下语句生成 实体类
–mysql 版本:

Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force

或者

Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force

server:数据库地址,User Id:账号,Password:登录密码
如果是针对单表的更新,加一个-Tables 后面是要更新的表名

Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"  -Tables "myTable"

–sql server 版本:

Scaffold-DbContext "Data Source=.;Initial Catalog=EFCore_dbfirst;User ID=sa;Password=sa.123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

或者

一般用这个就行!!!!
Scaffold-DbContext "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

通用的命令格式

Scaffold-DbContext "数据库连接字符串" EF组件名(Microsoft.EntityFrameworkCore.SqlServer/Pomelo.EntityFrameworkCore.MySql/等等) -OutputDir 输出文件夹名称

参数说明:

-OutputDir *** 实体文件所存放的文件目录
-ContextDir *** DbContext文件存放的目录
-Context *** DbContext文件名
-Schemas *** 需要生成实体数据的数据表所在的模式
-Tables *** 需要生成实体数据的数据表的集合
-DataAnnotations
-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
-Force 强制执行,重写已经存在的实体文件
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值