ef core code first from exist db

本文介绍如何使用EFCore连接已存在的数据库并仅选择特定表,适用于.NET Framework项目中需要使用原有EF CodeFirst生成的用户表场景。通过安装指定NuGet包及使用Scaffold-DbContext指令完成。
目标

为现有数据库生成新的连接,允许只选择部分表
可以处理一些很怪的需求,比如EF升级EF Core(这个可能有其他解),EF、EF Core同时连接一个数据库
我遇到的问题是:

原项目是.net framework的,现在要引用identityserver 4,实现SSO,但是不能重建用户表,需要使用原有的由ef code first生成的用户表
在经过多种方案之后,最终决定新建一个ef core,连接现有数据库
操作
安装包
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
使用指令
Scaffold-DbContext "Data Source=IP; Database=DbName; User ID=sa; Password=password;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Tables -Tables Table1,Table2

参数说明:
OutputDir 输出文件夹(这里取名为"Tables")
Tables 选择的表,默认全部

注意

会生成一个dbcontext,如果该项目原有dbcontext,需要手动拷贝一下,主要是迁移Tables+OnModelCreating

参考资料

https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db

转载于:https://www.cnblogs.com/Lulus/p/9469180.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值