一. 前提

1.安装EF Core连接MySQL的驱动,这里有两类:

 (1).Oracle官方出品:MySql.Data.EntityFrameworkCore (版本:8.0.17)

 (2).其他第三方出品:Pomelo.EntityFrameworkCore.MySql (版本:2.2.0)

PS: 本章节我们使用Oracle官方出品的驱动,当然EF Core的基础驱动必须要安装的。

(Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Design、Microsoft.EntityFrameworkCore.Tools)。

2.安装MySql数据库,并进行相应配置

 (1).安装MySql 5.6版本,参考教程:https://www.cnblogs.com/yaopengfei/p/7147806.html

 (2).开启MySql大小写敏感配置。

注:因为MySql默认表和字段都是不区分大小写的,这样会造成DBFirst模式映射到代码中的类和属性都是小写,相对别扭。

配置方法:

  找到mysql的配置文件在:C:\ProgramData\MySQL\MySQL Server 5.6\my.ini, 加上下面的两行配置:

 [mysqld]
lower_case_table_names=0

  然后需要重启MySql数据库服务!!!! 【net stop mysql,net start mysql】

二. DBFirst模式

1.新建数据库TestDB1,包含表:T_User(id,userName),T_Role(id,roleName)两张表。

2.在项目中新建“MySql01”文件夹,通过下面指令进行映射(注解的方式)

【Scaffold-DbContext "Server=localhost;Database=TestDB1;User ID=root;Password=123456;" MySql.Data.EntityFrameworkCore -ContextDir MySql01 -OutputDir MySql01 -UseDatabaseNames -Context TestDB1Context -DataAnnotations】

生成相关文件:

3.相关改造

(1). 注释生成TestDB1Context中的OnConfiguring,改成在ConfigureService中进行注册。

(2). services.AddDbContext<TestDB1Context>(option => option.UseMySQL(Configuration["TestDB1Str"]));

4.进行代码测试,如下:

  public class HomeController : Controller
{
public TestDB1Context _context1;
public HomeController(TestDB1Context context1)
{
this._context1 = context1;
} public IActionResult Index()
{
#region 01-DBFirst模式测试
{
var data1 = new T_User()
{
id = Guid.NewGuid().ToString("N"),
userName = "Marren"
};
_context1.Add(data1);
int count = _context1.SaveChanges();
var data = _context1.T_User.ToList();
}
#endregion return View();
}

三. CodeFirst模式

1.在项目中新建“MySql02”文件夹,将以前框架中的上下文和实体类复制过来,然后在ConfigureService中对上下文进行注册,然后在控制器进行注入。

  public class HomeController : Controller
{ public HomeController(CoreFrameDBContext context2)
{
this._context2 = context2;
} public IActionResult Index()
{ #region 02-CodeFirst模式测试
{
_context2.Database.EnsureDeleted();
_context2.Database.EnsureCreated(); var data = new T_SysOperLog()
{
id = Guid.NewGuid().ToString("N"),
userId = "",
operTime = DateTime.Now
};
_context2.Add(data);
int count = _context2.SaveChanges();
var myData = _context2.T_SysOperLog.ToList(); }
#endregion return View();
} }

2.利用代码【_context2.Database.EnsureCreated();】创建数据库。

 见上述代码

3.观察MySql数据库中新生成的数据库“CoreFrameDB”,并进行增加和查询操作测试

PS:后续补充详细的代码配置 和 指令配置。

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 本人才疏学浅,用郭德纲的话说“我是一个小学生”,如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 

第八节:EF Core连接MySql数据库的更多相关文章

  1. 使用EF CodeFirst连接MySql数据库

    如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...

  2. ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

    前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...

  3. ASP.NET Core使用EF Core操作MySql数据库

    ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...

  4. .net core使用ef core操作mysql数据库

    新建.net core webapi项目 在NuGet包管理器中搜索 MySql.Data.EntityFrameworkCore并安装,安装的8.0.14版本,只安装这一个就够了 安装后创建Data ...

  5. .NET Core中使用EF Core连接MySQL

    最近一直在捣鼓.NET Core方面的东西,顺便写下点东西记录下 1.打开vs2017,新建一个项目 2.vs会自动生成一个项目,然后打开NuGet搜索MySql.Data.EntityFramewo ...

  6. .net core使用EF core连接mssqlserver数据库

    一,打开控制台二,输入以下代码1.Install-Package Microsoft.EntityFrameworkCore 2.Install-Package Microsoft.EntityFra ...

  7. .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程

    本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...

  8. Vs2013 使用EF6 连接mysql数据库

    最近在使用MySQL数据库,在使用EF框架连接MySQL数据库时发现了一个问题,使用DB First创建实体对象的时候会出现如下图的错误:您的项目引用了最新版实体框架….. (如下图)或者会出现新建实 ...

  9. EF 连接MySQL 数据库  保存中文数据后乱码问题

    EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...

随机推荐

  1. EF性能优化篇一

    https://www.cnblogs.com/chenwolong/p/7531955.html 1.合理使用AsNoTracking 若对查询的数据不需要做任何修改,则可采用AsNoTrackin ...

  2. 腾讯WeTest&TesterHome深圳线下沙龙

    腾讯官方的一站式品质开放平台「腾讯WeTest」携手知名测试社区「TesterHome」以及3家金融相关企业为我们带来的金融专场. 本次活动内容主要以金融公司的测试落地和测试技术为主,我们希望你是一个 ...

  3. AI 的架构与核心

    AI 的架构 人工智能的架构分为三层:应用层.技术层和基础层. 应用层聚焦在人工智能和各行业各领域的结合.技术层是算法.模型和技术开发.基础层则是计算能力和数据资源. 数据收集:获取什么类型的数据,数 ...

  4. MyBatis学习笔记-1 Idea配置MyBatis

    一.创建工程 1.创建Java项目,勾选Java EE,Next,修改名称,Finish 2.在WEB-INF下创建两个文件夹classes和lib,分别用作输出文件目录和库文件目录 3.File-P ...

  5. 201871010104-陈园园 《面向对象程序设计(java)》第八周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  6. 14-numpy笔记-莫烦pandas-2

    代码 import pandas as pd import numpy as np dates = pd.date_range('20130101', periods=6) df=pd.DataFra ...

  7. poi基本使用

    poi基本使用 依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...

  8. svn服务器端程序安装(二)

    1.下载 Setup-Subversion-1.8.9-1.msi 2. 双击,一直next (1) 修改安装地址,要求是非中文无空格 3. 安装完成后,检查是否已添加到系统的环境变量PATH中,若没 ...

  9. JDOJ 2225 工资计划

    JDOJ 2225: 工资计划 https://neooj.com/oldoj/problem.php?id=2225 Description 高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零 ...

  10. clickhouse 离线/在线 安装和java通过jdbc链接

    检查 需要确保是否x86_64处理器构架.Linux并且支持SSE 4.2指令集 grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 ...