第八节:EF Core连接MySql数据库
一. 前提
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数据库的更多相关文章
- 使用EF CodeFirst连接MySql数据库
如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...
- ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作
前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...
- ASP.NET Core使用EF Core操作MySql数据库
ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...
- .net core使用ef core操作mysql数据库
新建.net core webapi项目 在NuGet包管理器中搜索 MySql.Data.EntityFrameworkCore并安装,安装的8.0.14版本,只安装这一个就够了 安装后创建Data ...
- .NET Core中使用EF Core连接MySQL
最近一直在捣鼓.NET Core方面的东西,顺便写下点东西记录下 1.打开vs2017,新建一个项目 2.vs会自动生成一个项目,然后打开NuGet搜索MySql.Data.EntityFramewo ...
- .net core使用EF core连接mssqlserver数据库
一,打开控制台二,输入以下代码1.Install-Package Microsoft.EntityFrameworkCore 2.Install-Package Microsoft.EntityFra ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
- Vs2013 使用EF6 连接mysql数据库
最近在使用MySQL数据库,在使用EF框架连接MySQL数据库时发现了一个问题,使用DB First创建实体对象的时候会出现如下图的错误:您的项目引用了最新版实体框架….. (如下图)或者会出现新建实 ...
- EF 连接MySQL 数据库 保存中文数据后乱码问题
EF 连接MySQL 数据库 保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...
随机推荐
- EF性能优化篇一
https://www.cnblogs.com/chenwolong/p/7531955.html 1.合理使用AsNoTracking 若对查询的数据不需要做任何修改,则可采用AsNoTrackin ...
- 腾讯WeTest&TesterHome深圳线下沙龙
腾讯官方的一站式品质开放平台「腾讯WeTest」携手知名测试社区「TesterHome」以及3家金融相关企业为我们带来的金融专场. 本次活动内容主要以金融公司的测试落地和测试技术为主,我们希望你是一个 ...
- AI 的架构与核心
AI 的架构 人工智能的架构分为三层:应用层.技术层和基础层. 应用层聚焦在人工智能和各行业各领域的结合.技术层是算法.模型和技术开发.基础层则是计算能力和数据资源. 数据收集:获取什么类型的数据,数 ...
- MyBatis学习笔记-1 Idea配置MyBatis
一.创建工程 1.创建Java项目,勾选Java EE,Next,修改名称,Finish 2.在WEB-INF下创建两个文件夹classes和lib,分别用作输出文件目录和库文件目录 3.File-P ...
- 201871010104-陈园园 《面向对象程序设计(java)》第八周学习总结
201871010104-陈园园 <面向对象程序设计(java)>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 14-numpy笔记-莫烦pandas-2
代码 import pandas as pd import numpy as np dates = pd.date_range('20130101', periods=6) df=pd.DataFra ...
- poi基本使用
poi基本使用 依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...
- svn服务器端程序安装(二)
1.下载 Setup-Subversion-1.8.9-1.msi 2. 双击,一直next (1) 修改安装地址,要求是非中文无空格 3. 安装完成后,检查是否已添加到系统的环境变量PATH中,若没 ...
- JDOJ 2225 工资计划
JDOJ 2225: 工资计划 https://neooj.com/oldoj/problem.php?id=2225 Description 高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零 ...
- clickhouse 离线/在线 安装和java通过jdbc链接
检查 需要确保是否x86_64处理器构架.Linux并且支持SSE 4.2指令集 grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 ...