官方文档:

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的更多相关文章

  1. 如何通过java反射将数据库表生成实体类?

    首先有几点声明: 1.代码是在别人的基础进行改写的: 2.大家有什么改进的意见可以告诉我,也可以自己改好共享给其他人: 3.刚刚毕业,水平有限,肯定有许多不足之处: 4.希望刚刚学习java的同学能有 ...

  2. SqlServer数据库表生成C# Model实体类SQL语句——补充

    在sql语句最前边加上  use[数据库名] 原链接:https://www.cnblogs.com/jhli/p/11552105.html   --[SQL骚操作]SqlServer数据库表生成C ...

  3. symfony 数据库表生成实体、迁移数据库

    从数据库表生成实体 1. 由数据库生成模型: php bin/console doctrine:mapping:convert --from-database yml D:\db\ D:\test_b ...

  4. django根据已有数据库表生成model类

    django根据已有数据库表生成model类 创建一个Django项目 django-admin startproject 'xxxx' 修改setting文件,在setting里面设置你要连接的数据 ...

  5. MyEclipse从数据库反向生成实体类之Hibernate方式 反向工程

    前文: hibernate带给我们的O/RMapping思想是很正确的,即从面相对象的角度来设计工程中的实体对象,建立pojo,然后在编写hbm.xml映射文件来生成数据表.但是在实际开发中,往往我们 ...

  6. 使用T4为数据库自动生成实体类

    T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器.使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML ...

  7. MyEclipse数据库反向生成实体类

    MyEclipse数据库反向生成实体类 “计应134(实验班) 凌豪” 当我们在开发项目涉及到的表太多时,一个一个的写JAVA实体类很是费事.然而强大的MyEclipse为我们提供简便的方法:数据库反 ...

  8. J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式

    J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式   反向工程又称逆向工程.   开发项目涉及到的表太多,一个一个的写JAVA实体类很是费事.MyEcl ...

  9. 自定义tt文本模板实现MySql指数据库中生成实体类

    自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击“添加”/“新建项”,选择“文本模板”,输入名称后点击添加. 2.在Base.tt中添加如下代码. <#@ templa ...

  10. IDEA快速生成数据库表的实体类

    IDEA连接数据库 IDEA右边侧栏有个DataSource,可以通过这个来连接数据库,我们先成功连接数据库 点击进入后填写数据库进行连接,注意记得一定要去Test Connection 确保正常连接 ...

随机推荐

  1. 项目构建node-sass源码报错 SyntaxError:Unexpectedtoken"?"

    背景 vue2项目,之前一直构建正常.今天改了代码,构建时报错,报错原因显示编译node-sass源码时出错. 报错信息: Modulebuild failed:/node_modules/node- ...

  2. 【AI 全栈 SOTA 综述 】这些你都不知道,怎么敢说会 AI?【语音识别原理 + 实战】

    章目录 前言语音识别原理   信号处理,声学特征提取   识别字符,组成文本   声学模型   语言模型   词汇模型语音声学特征提取:MFCC和LogFBank算法的原理实战一 ASR语音识别模型 ...

  3. 第一部分:介绍 Spdlog 日志库

    什么是 Spdlog 日志库 Spdlog 是一个 C++ 的日志库,它具有高效.易用.跨平台等特点.它可以写入到控制台.文件等输出目标,支持多种日志级别.多线程安全等功能,非常适合在 C++ 项目中 ...

  4. jQuery绑定方法

    流程/*** * 1.文件命名 * jquery.banner.1.0.0.js * jquery.banner.js * 2.添加匿名函数 * (function(){})() * 3.给插件前后添 ...

  5. 时隔十年,QQ更新了Linux版本

    昨天1024程序员节,QQ悄悄地更新了QQ for Linux,也许是给各位一个惊喜吧. 官网及其的简陋.和一个Word文档似的. 十年一更,有网友称,瞬间回到QQ2006,确实界面功能有些落后,相信 ...

  6. [GIT]指定分支下创建分支

    1 解决方案 Eg: master分支下创建 $ git checkout master //切换到master分支下 $ git branch branch_tmp_A //在本地仓库创建临时分支b ...

  7. .NET快速开发框架-RDIFramework.NET 全新EasyUI版发布

    RDIFramework.NET,基于.NET的快速信息化系统快速开发框架.10年专注.易上手.多组件.全源码.可灵活构建各类型系统. 1.RDIFramework.NET快速开发框架简介 RDIFr ...

  8. SpringSecurity+Token实现权限校验

    1.Spring Security简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配 ...

  9. MQ高级

    1.消息可靠性 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者发送的消息未送达exchange 消息到达exchange后未到达 ...

  10. LeetCode 周赛 341 场,模拟 / 树上差分 / Tarjan 离线 LCA / DFS

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 上周末有单双周赛,双周赛我们讲过了,单周赛那天早上有事没参加,后面做了虚拟竞赛,然后整个 ...