如何使用EF CodeFirst连接MySql数据库?
环境:VS2015、Win7、.NetFramework4.5.2、MySql5.6
一、基本操作
1、创建MVC5项目:ZmsoftsWebMvc。
2、通过NuGet包管理器安装:MySql.Data.EntityFramework
3. web.config添加连接字符串connectionStrings
4.创建一个dbcontext类
public classZmDbContext : DbContext
{public ZmDbContext() : base("default")
{
}public virtual DbSet 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;
不添加SslMode = none;可能会出现异常:The provider did not return a ProviderManifestToken string. ---> MySql.Data.MySqlClient.MySqlException: The host localhost does not support SSL connections.
然后,修改DbProviderFactories
B、修改ZmDbContext.cs文件
[DbConfigurationType(typeof(MySqlEFConfiguration))]public classZmDbContext : DbContext
{
....
}
C、修改Configuration
publicConfiguration()
{
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