第八节: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(图是另一个表的 ...
随机推荐
- mysql报错com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
一.问题 运行java代码时报如下的错误: You have an error in your SQL syntax;Cause:com.mysql.jdbc.exceptions.jdbc4.MyS ...
- CSS函数大全
CSS函数(方法)参考 CSS函数用作各种CSS属性的值. 函数 描述 attr() 返回所选元素的属性值 calc() 允许您执行计算以确定CSS属性值 cubic-bezier() 定义Cubic ...
- HLAPI
和SPS硬件交互的API
- Nginx02(环境配置以及基本使用)
一:Nginx环境配置 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet ...
- vsftpd服务
vsftpd服务 文件传输协议(file transfer protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件,上传文件,下载文件.ftp基于TCP协议生成一个虚拟的连接,主要 ...
- springcloud学习之路: (五) springcloud集成SpringCloudConfig分布式配置中心
SpringCloud全家桶中的分布式配置中心SpringCloudConfig, 它使用git来管理配置文件, 在修改配置文件后只需要调用一个接口就可以让新配置生效, 非常方便. SpringClo ...
- apache配置项
环境:apache2.24 apache 官方文档:http://httpd.apache.org/docs/2.4/ 全部指令索引: http://httpd.apache.org/docs/ ...
- openstack Train版 “nova-status upgrade check”报错:Forbidden: Forbidden (HTTP 403)
部署openstack train版,在部署完nova项目时,进行检查,执行 nova-status upgrade check 返回报错信息如下: [root@controller ~]# nova ...
- openstack连接报错net_mlx5: cannot load glue library: libibverbs.so.1
部署openstack controller节点,第二天登录主机提示错误信息 Connecting to 10.1.10.151:22...Connection established.To esca ...
- 为何JAVAWEB绝对路径访问不了图片
为何JAVAWEB绝对路径访问不了图片?其实这涉及到两个原因 1:浏览器类型不同: 五大主流浏览器内核有所不同,能够支持的功能不一样:如谷歌浏览器就不能查看绝对路径 2:涉及到保护隐私安全: (谷歌浏 ...