EF6 CodeFirst使用MySql
如何使用EF CodeFirst连接MySql数据库?
环境:VS2015、Win7、.NetFramework4.5.2、MySql5.6
一、基本操作
1、创建MVC5项目:ZmsoftsWebMvc。
2、通过NuGet包管理器安装:MySql.Data.EntityFramework
3. web.config添加连接字符串connectionStrings
<add name="default" connectionString="data source=.;initial catalog=zmdb;Trusted_Connection=True;" providerName="System.Data.SqlClient" />
4.创建一个dbcontext类
public class ZmDbContext : DbContext
{
public ZmDbContext() : base("default")
{ }
public virtual DbSet<User> Users { get; set; } }
5.使用Enable-Migrations 开启迁移,自动生成配置文件
二、MYSQL配置
1.基础配置
A、下载MySQL for Visual Studio
https://dev.mysql.com/downloads/windows/visualstudio/
B、安装connector
https://dev.mysql.com/downloads/connector/net/
C、修改my.ini
找到以下信息,前面如果没有加#,就补上。如果没有注释,会出现异常:Unknown storage engine 'InnoDb'
# skip-innodb
#loose-skip-innodb
2.程序配置
A、修改web.config
首先,修改connectionStrings;
添加SslMode = none;,网上有的还加了port=3306;
如果保存中文出现乱码,需要添加 Character Set=utf8;
<add name="default" connectionString="Server=localhost;Database=zmdb;Uid=root;Pwd=123456;SslMode = none;" providerName="MySql.Data.MySqlClient" />
不添加SslMode = none;可能会出现异常:The provider did not return a ProviderManifestToken string. ---> MySql.Data.MySqlClient.MySqlException: The host localhost does not support SSL connections. 然后,修改DbProviderFactories
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.10.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
B、修改ZmDbContext.cs文件
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class ZmDbContext : DbContext
{
....
}
C、修改Configuration
public Configuration()
{
AutomaticMigrationsEnabled = false; SetSqlGenerator("MySql.Data.MySqlClient", new MySqlMigrationSqlGenerator());//设置Sql生成器为Mysql的
}
三、EF迁移
1.添加迁移文件
Add-Migration Init
2.迁移
Update-DataBase –verbose
目前遇到一个问题,在Configuration中Seed的初始化时,插入数据库乱码,路过的大神帮下忙
demo下载地址:https://gitee.com/zmsofts/XinCunShanNianDaiMa/blob/master/ZmsoftsMP.rar
参考文章:
https://www.cnblogs.com/kexxxfeng/p/5095812.html
https://www.cnblogs.com/alunchen/p/7188562.html
EF6 CodeFirst使用MySql的更多相关文章
- EF6 CodeFirst连接MySql 报nvarchar('max')错误解决办法
1.在DBContext类加标签[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] 2.在Nuget控制台输入u ...
- 使用EF CodeFirst连接MySql数据库
如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5.x 前言 一般在EF中,默认是使用SqlServ ...
- EF6 CodeFirst 实践系列文章列表
2015 Jul.16 EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(一) 来自:wangweimutou 本系列源自对EF6 CodeFirst的探索 ...
- EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(一)
前言 本系列源自对EF6 CodeFirst的探索,但后来发现在自己项目中构建的时候遇到了一些问题以及一些解决方法,因此想作为一个系列写下来. 本系列并不是教你怎么做架构设计,但可以参照一下里面的方法 ...
- EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型
官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新 ...
- visual studio 2013 下ef6 CodeFirst 使用SQL Lite 数据库
今天系统的来记录一下再vs2013下,使用ef6 codefirst功能,来操作SQL lite数据库 本来我以为sqlite数据库用的这么多,ef6肯定支持,结果,使用过程中很多坑,现在我把具体的配 ...
- EF6(CodeFirst)+MySql开发脱坑指南
废话 话说当年,在一个春光明媚的晌午,邂逅了迷人的丁香姑娘,从此拜倒在了她的石榴裙下,至今不能自拔,这位丁香姑娘就是ORM思想. 所谓ORM思想,我的理解就是根据一定的规则,把程序中的对象和数据库中的 ...
- EF6(CodeFirst)+MySql开发遇到的坑
最近一不小心偷个懒就已经过了好几个月了,真是惭愧惭愧,出来混终究是要还的,我还是把”脱坑指南“写完吧,-_-~~.点我打开上篇博客 0x001.架构名”dbo”の殇 坑之首也,当提架构名,在mssql ...
- EF6 Codefirst+MySql 数据库迁移
简介 项目使用MSSql作为数据库,但是因为SQL服务器贵那么一点,并发连接差那么一点,要把数据迁移到MySQL,顺带迁移过程以及问题. 环境 Visual Studio 2013 MySQL 5.7 ...
随机推荐
- Python第二天: 变量详解及变量赋值
目录 什么是变量? 怎么写一个好的变量? 下划线命名法及驼峰命名法 结语 目录 此文章针对刚学Python的小白,若觉得对变量有很好的掌握,可以观看其他的文章 在这里, 我说一下我对变量的简单总结: ...
- printf 函数原型
typedef char *va_list; #define _AUPBND (sizeof (acpi_native_int) - 1) #define _ADNBND (sizeof (acpi_ ...
- Django组件 之中间件
-------------------------------------------------------------------落花不是无情物,待到山花烂漫时. 中间件 中间件的概念 中间件顾名 ...
- 572. Subtree of Another Tree(easy)
Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and no ...
- SQL Server中存储过程的创建命令
Create Proc 存储过程名称 ( @参数1 参数类型, @参数2 参数类型, ... ... --最后一行参数,别加逗号了,加逗号的意思是表示后面还有参数 ) AS 需要执行的SQL命令 GO ...
- MySQL索引原理及慢查询优化(转自:美团tech)
背景 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会 ...
- JS 设计模式二 -- 单例模式
单例模式 概念 单例模式 就是保证一个类只有一个实例,并提供一个访问它的全局访问点. 实现方法 先判断实例是否存在,如果存在直接返回,如果不存在就创建实例后在返回,确保了一个类只有一个实例对象. va ...
- iview 动态渲染menu时active-name无效的问题
动态渲染menu时,如果需要active-name,那么name只能绑定index,动态渲染的数组初始必须有一个空对象.否则无法使用active-name属性.注:仅限3.0版本,不排除新版本修复的可 ...
- python爬取中国天气网站数据并对其进行数据可视化
网址:http://www.weather.com.cn/textFC/hb.shtml 解析:BeautifulSoup4 爬取所有城市的最低天气 对爬取的数据进行可视化处理 按温度对城市进行排 ...
- LODOP中的纯文本和超文本打印项
LODOP中的的打印项,有超文本也有纯文本,超文本指的是用html语言,html里的标签为值的打印项,该种打印项会经过浏览器解析,LODOP本身不带解析超文本的引擎,调用的windows底层引擎,与i ...