一:创建EF的类库,同时将此项目设置为启动项(为Scaffold-DbContext -tables指令使用),同时安装2个包  

①Microsoft.EntityFrameworkCore.Tools

②Pomelo.EntityFrameworkCore.MySql (这个是第三方的ef mysql 中间件)

例如:

二:生成数据库的实体和EF的DBcontext对象,用到的是 Scaffold-DBcontext命令

在程序包控制台输入以下命令

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

server:数据库地址,User Id:账号,Password:登录密码

如果是针对单表的更新,加一个-Tables 后面是要更新的表名

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

执行完成之后会生成指定的是Model ,注意:表必须有主键,才会生成,如果没有主机会报 Unable to generate entity type for table “xxxx” 警告,当然实体也不会生成

出现的问题:如果有表字段为 datetime类型的,生成的时候会报错 应输入标识符,处理方法:把.()去掉。此问题如果有大神看到帮忙解答下

例如:

三:创建标准的web应用,进行使用

①在appsettings.json配置数据库的地址信息,注意  SslModel=none例如

"MySqlConnection": "Database='***';Data Source=****;User ID=***;Password=***;CharSet=utf8;SslMode=None"

② 在startup.cs 配置注入,其中有用到一些引用 顺手引用一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void ConfigureServices(IServiceCollection services)
       {
           services.Configure<CookiePolicyOptions>(options =>
           {
               // This lambda determines whether user consent for non-essential cookies is needed for a given request.
               options.CheckConsentNeeded = context => true;
               options.MinimumSameSitePolicy = SameSiteMode.None;
           });
 
           //ef mysql 配置
           services.AddDbContext<drewtestContext>(options => options.UseMySql(Configuration.GetConnectionString("MySqlConnection")));
 
           services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
       }

  ③之后就是标准的调用,例如在控制器中的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class HomeController : Controller
   {
       drewtestContext _content;
       public HomeController(drewtestContext context)
       {
           _content = context;
       }
 
       public IActionResult Index()
       {
           List<SctonlyHome> list_sctonlyHomes = _content.SctonlyHome.ToList();
           return View();
       }
   }

到此就是基础的EF core mysql入门配置了。

附一些相关教程链接

Entity Framework Core

https://docs.efproject.net
https://docs.microsoft.com/zh-cn/ef/

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。
EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。
https://docs.microsoft.com/zh-cn/ef/core/

反向工程
反向工程是基架实体类型类的过程,以及基于数据库架构的 DbContext 类。 可以使用 Scaffold-DbContext EF Core 包管理器控制台(PMC)工具的命令或 dotnet ef dbcontext scaffold .net 命令行接口(CLI)工具的命令来执行该命令。
https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding?tabs=dotnet-core-cli

EF Core 工具和扩展 NuGet 包
https://docs.microsoft.com/zh-cn/ef/core/extensions/

Entity Framework Core 工具参考-Visual Studio 中的包管理器控制台
https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/powershell

.NetCore 3.1 教程之 EFCore连接Mysql DBFirst模式 从数据库生成实体的更多相关文章

  1. .NetCore教程之 EFCore连接Mysql DBFirst模式

    一:创建EF的类库,同时将此项目设置为启动项(为Scaffold-DbContext -tables指令使用),同时安装2个包   ①Microsoft.EntityFrameworkCore.Too ...

  2. kali linux 系列教程之metasploit 连接postgresql可能遇见的问题

    kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题. ...

  3. VS2015 +EF6 连接MYSQL数据库生成实体

      VS2015 +EF6 连接MYSQL数据库生成实体   已安装软件:VS2015                       XAMPP Control Panel(Mysql服务器)      ...

  4. Delphi XE3通过ADOConnection 连接 MySQL 5.5.27 数据库

    Delphi XE3通过ADOConnection 连接 MySQL 5.5.27 数据库 unit Unit1; interface uses Winapi.Windows, Winapi.Mess ...

  5. NetCore +EF+Mysql 从数据库生成实体类到项目

    1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 分别安装以下几个包 Mysql 版本: Install-Package MySql.Data.EntityFramew ...

  6. NetCore +EFCore+SqlServer根据数据库生成实体类到项目中

    转载自:https://www.cnblogs.com/yangjinwang/p/9516988.html 1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 分别安装 ...

  7. DotNetCore跨平台~EFCore连接Mysql的方式

    回到目录 在.net frameworks的ef里连接mysql我们已经测试通过了,而在dotnet core里的efCore上去连接mysql我们需要测试一下,并且在测试过程中出现了一些问题,当然最 ...

  8. .Net Core控制台&EFCore连接Mysql

    在用惯了Asp.Net Core提供的基架后,反过来想一想,貌似忘记了控制台如何去连接数据库了,因此,写一篇文章来借此巩固下并以后再来回顾时,加快步骤. 1.新建一个.Net Core控制台,然后安装 ...

  9. web系列教程之php 与mysql 动态网站 。检索 与更新。

    接着上次WEb 系列开发之php 与mysql动态网站入门. 个人觉得,学习技术就像一棵大树,主干很重要,枝叶其次.对于学习技术,我们应该分清主次关系.怎么学?为什么要学?有一个较好的分寸. 有时候觉 ...

  10. Git使用教程之SSH连接方式配置(二)

    什么是GitHub?这个网站就是提供Git仓库托管服务的. 什么是SSH Key?你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,大白话理解就是这两个仓库如果要进行远程同步,则我们需 ...

随机推荐

  1. HarmonyOS如何高效上架原子化服务?这个平台帮你搞定!

    以往HarmonyOS应用和原子化服务都是在AGC(App Gallery Connect)上架,二者的上架流程一样.但应用的形态更加复杂庞大,上架时有很多必填字段,审核标准也相对复杂,而原子化服务的 ...

  2. CentOS6.4中yum命令安装php5.2.17[转载未亲测]

    最近给公司部署服务器的时候发现他们提供的服务器是centos6.4系统的,装好系统和相关服务httpd,mysql,php,一跑代码,发现php5.3中的zend加密不能用,安装Zend Guard ...

  3. CentOS文件备份|还原

    CentOS文件备份|还原 时间:2014-03-18 00:27 来源:51cto博客 作者:sailyangfan的空间 举报 点击:205次 dump备份 restore还原 dd数据备份 mk ...

  4. redis 简单整理——哨兵原理[三十一]

    前言 简单介绍一下哨兵的原理. 正文 一套合理的监控机制是Sentinel节点判定节点不可达的重要保证,Redis Sentinel通过三个定时监控任务完成对各个节点发现和监控: 1)每隔10秒,每个 ...

  5. tracer 原理

    前言 准备整理网络章节,先整理概念. tracer 是一个可以获取我们的主机到访问端中间经过了哪些路由,这个对于我们非常重要,看下原理吧. 正文 tracer 在unix中是tracerRout. 它 ...

  6. esp8266,arduino,网页显示dht11温湿度,控制继电器开关,局域网智能家居

    不说了,上代码,用arduino实现esp8266代码 #include <ESP8266WiFi.h> #include <WiFiClient.h> #include &l ...

  7. pypinyin 获取拼音,作为智能设备的唤醒比对结果

    from pypinyin import lazy_pinyin,TONE,TONE2,TONE3,NORMAL a = "小七同学" b = "小琦同学" c ...

  8. 力扣521(java&python)-最长特殊序列Ⅰ(简单)

    题目: 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列  的长度.如果不存在,则返回 -1 . 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的 ...

  9. 牛客网-SQL专项练习1

    ①检索所有比"王华"年龄大的学生姓名.年龄和性别.SQL语句: 解析: 第一步:先找到王华的年龄 SELECT AGE FROM S WHRE SN = "王华" ...

  10. 全链路灰度新功能:MSE 上线配置标签推送

    简介: 本文介绍了全链路灰度场景给配置管理带来的问题,介绍了 MSE 针对这一场景的解决方案,并通过实践的方式展示了配置标签推送的使用流程.后续,MSE 还会针对配置治理做更多的探索,帮助用户更好地解 ...