EFCore-6 反向工程

反向工程就是DB First,根据数据库表来反向生成实体类代码,通俗讲就是数据库优先。

该方法使用场景为已经有数据库了,数据库里面已经存在一些表,这时候想使用EF Core框架的情况。官方并不推荐使用反向工程,因为这种方法生成的代码,后期维护起来比较麻烦。推荐使用Code First模型,即代码优先。

项目操作示例:

1.在SqlServer数据库中新建一个库,名字为TestDbHR。在数据库中新建一个表,表名为T_PERSON,字段信息如下图所示。

2.新建一个控制台项目,并引用下面两个程序集。

Microsoft.EntityFrameworkCore.SqlServer

Microsoft.EntityFrameworkCore.Tools

 3.在vs的程序包管理器控制台中输入命令,根据数据库连接和数据库名称生成表所对应的实体类。

scaffold-dbcontext 'server=.;database=testdbhr;trusted_connection=true;MultipleActiveResultSets=true' microsoft.entityframeworkcore.sqlserver

命令解读:

server属性的值为数据库连接地址,因为我这里是本地电脑,所以用.(点)。如果是服务器上的数据库,则填写对应的地址。

testdbhr:需要生成实体类的数据库名称 。

命令执行完成后,可以看到项目文件夹中新生成了两个文件:

 

到此为止,反向工程的操作就完成了。

如果数据库中又新增了表,那么只需要再次执行下第三步的命令(需要在原有命令行后面加上 -force),就可以为新加的表生成对应的实体。下面演示下操作步骤:

a.数据库增加一张名为T_DOG的表

 b.在vs的程序包管理器控制台中输入命令

 scaffold-dbcontext 'server=.;database=testdbhr;trusted_connection=true;MultipleActiveResultSets=true' microsoft.entityframeworkcore.sqlserver -force

命令执行完毕后,可以看到新加的表对应的实体类,被自动创建出来。

 

注意事项:

1.生成的实体类可能不满足项目的要求,可能需要手工修改或者增加配置。

2.再次运行反向工程工具,对文件所做的任何更改都将丢失。

3.不建议把反向工具当做日常开发工具使用。不建议DBFirst。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值