C# EFCore 根据Oracle/SqlServer数据库表生成实体类和DbContext
官方文档:
https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding?tabs=dotnet-core-cli
本文以Oracle数据库为演示例子,也包含SqlServer教程,注意阅读文字,以免报错。
VS→工具→Nuget包管理器→程序包管理器控制台(也可以直接右键依赖项管理Nuget包),
注意默认项目别选错了,

依次输入如下命令
Install-Package Microsoft.EntityFrameworkCore.Tools //工具包
Install-Package Microsoft.EntityFrameworkCore.Design//设计包
Install-Package Oracle.EntityFrameworkCore //Oracle包
前两个是必备,最后是对应数据库的EF包,比如是sqlserver就导入sqlserver的ef包
Oracle包:Oracle.EntityFrameworkCore,连接字符串例子:Data Source=127.0.0.1/pwwdb_st;Password=sa;User ID=123456;
SqlServer包:Microsoft.EntityFrameworkCore.SqlServer,连接字符串例子:Server=127.0.0.1;DataBase=Test;Uid=sa;Pwd=123456
最后输入
Scaffold-DbContext "Data Source=123;Password=123;User ID=123;" Oracle.EntityFrameworkCore -OutputDir Entity -context aaaContext
解释一下,各个数据库都通用,前面是关键词,引号里是连接字符串,后面跟着的是对应数据库的EF包,
-OutputDir 要在其中放置文件的目录。 路径相对于项目目录。没有会自动创建
-context 是生成的上下文名称
然后如果以后也不打算项目内迁移数据库啥的可以把除了Oracle.EntityFramework其他的包移除了,
生成的dbContext里会包含警告,意思是代码里最好不要带这些敏感信息,

然后把连接字符串写到appsettings.json,
"ConnectionStrings": {
"DLGS": "Data Source=123;Password=123;User ID=123;"
},
startup类里注入,再把上面的警告和代码注释掉就ok了
services.AddDbContext<DlgsContext>(op =>
{
op.UseOracle(Configuration.GetConnectionString("DLGS"));
});
最后宣传一下我的小demo,
搞了一个实体生成器,.net5的winform窗体实现的
生成器模式(Builder Pattern)
想看代码的可以上我的github上去看,求star

github地址:https://github.com/GaoXiong666/CreateEntity
C# EFCore 根据Oracle/SqlServer数据库表生成实体类和DbContext的更多相关文章
- 如何通过java反射将数据库表生成实体类?
首先有几点声明: 1.代码是在别人的基础进行改写的: 2.大家有什么改进的意见可以告诉我,也可以自己改好共享给其他人: 3.刚刚毕业,水平有限,肯定有许多不足之处: 4.希望刚刚学习java的同学能有 ...
- SqlServer数据库表生成C# Model实体类SQL语句——补充
在sql语句最前边加上 use[数据库名] 原链接:https://www.cnblogs.com/jhli/p/11552105.html --[SQL骚操作]SqlServer数据库表生成C ...
- symfony 数据库表生成实体、迁移数据库
从数据库表生成实体 1. 由数据库生成模型: php bin/console doctrine:mapping:convert --from-database yml D:\db\ D:\test_b ...
- django根据已有数据库表生成model类
django根据已有数据库表生成model类 创建一个Django项目 django-admin startproject 'xxxx' 修改setting文件,在setting里面设置你要连接的数据 ...
- MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程
前文: hibernate带给我们的O/RMapping思想是很正确的,即从面相对象的角度来设计工程中的实体对象,建立pojo,然后在编写hbm.xml映射文件来生成数据表.但是在实际开发中,往往我们 ...
- 使用T4为数据库自动生成实体类
T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器.使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML ...
- MyEclipse数据库反向生成实体类
MyEclipse数据库反向生成实体类 “计应134(实验班) 凌豪” 当我们在开发项目涉及到的表太多时,一个一个的写JAVA实体类很是费事.然而强大的MyEclipse为我们提供简便的方法:数据库反 ...
- J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式
J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式 反向工程又称逆向工程. 开发项目涉及到的表太多,一个一个的写JAVA实体类很是费事.MyEcl ...
- 自定义tt文本模板实现MySql指数据库中生成实体类
自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击“添加”/“新建项”,选择“文本模板”,输入名称后点击添加. 2.在Base.tt中添加如下代码. <#@ templa ...
- IDEA快速生成数据库表的实体类
IDEA连接数据库 IDEA右边侧栏有个DataSource,可以通过这个来连接数据库,我们先成功连接数据库 点击进入后填写数据库进行连接,注意记得一定要去Test Connection 确保正常连接 ...
随机推荐
- LoadRunner——分析图详解(十四)
<分析图详解> 一.Running V user s 图 X轴表示运行所用的时间,Y轴表示vuser数, 显示在整个运行过程中随着时间的推移,虚拟用户数量是如何变化的,具体描述为:用户是如 ...
- uniapp微信小程序解析详情页的四种方法
一.用微信文档提供的RICH-TEXT 官方文档:微信文档rich-text 这种是直接使用: <!-->content是API获取的html代码</--> <rich- ...
- 4.0 SDK Workshop 纪实:一起体验多人、多屏幕共享新功能
在本月初,声网发布了 RTC Native SDK 4.0 版本.该版本提供了更高的开发灵活度,可明显提升实时场景开发效率,并让第三方插件开发更容易.上周六(8月20日),我们组织了一场小型的线下 W ...
- 如何使用Photino创建Blazor项目进行跨平台
Photino是什么 Photino是一组使用Web (HTML/CSS/JavaScript)UI创建桌面应用程序的技术.TryPhotino.io 维护 .NET 构建,并鼓励社区开发 Photi ...
- NoSQL之 Redis配置与优化
目录 一.缓存概念 1.1 系统缓存 1.1.1buffer与cache 1.2 缓存保存位置及分层结构 1.2.1 DNS缓存 1.2.2 应用层缓存 1.2.3数据层缓存 1.2.4 硬件缓存 二 ...
- window.onload / onscroll/onresize 事件
onload当文档加载完成后执行一些操作 window.onload = function(){ console.log("页面加载完成") } onscroll当页面发生滚动时执 ...
- STM32F407 学习 (0) 各种外设功能 (中)
十.高级定时器 1.重复计数器 如果我们设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生.重复计数器的特性,在控制生成 PWM 信号时很有用. 2. ...
- day01-SpringCloud基本介绍
SpringCloud基本介绍 SpringCloud官方文档 1.提出问题 先思考一个问题,没有微服务技术,是不是程序员就不能开发大型项目? 是可以的,对大型项目进行模块划分,对各个模块进行实现.但 ...
- [数据库/Java SE]MySQL驱动包(mysql-connector-java.jar)问题[com.mysql.jdbc.Driver/org.gjt.mm.mysql.Driver/com.mysql.cj.jdbc.Driver]
MySQL的驱动JAR包----mysql-connector-java.jar,不同版本,其JBDC驱动类Driver的路径均有可能变化. 日后使用时,可根据本文的思路,有依据地进行检查(而不是随便 ...
- 五月十四号java基础知识点
class Person{ private String name; private int age; public Person(String name,int age){ this.name = ...