VS2019 + MVC + EF6-CodeFirst connecté MySQL
1, pour préparer l'environnement (acquise par NuGet)
Cadre d'entité
![](https://img2020.cnblogs.com/blog/916611/202004/916611-20200405165214844-695275169.png)
MySql.Data.Entity
![](https://img2020.cnblogs.com/blog/916611/202004/916611-20200405165257246-24831959.png)
Après la confirmation de l'installation
![](https://img2020.cnblogs.com/blog/916611/202004/916611-20200405165306473-340061359.png)
2, ajouter une classe d'étudiants dans le dossier MVC-modèle, derrière en utilisant [Data Migration] pour créer une table dans MySQL
public class Student
{
public int ID { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
}
3, créer un contexte de données ( d' abord introduit using System.Data.Entity;
)
namespace EFToMysqlDemo
{
// [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] 如果去掉这一句,EF自动创建数据库时会报错,而此时创建控制器又会报错,所以创建控制器的时候注销这句就可以了
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class EFDemoContext:DbContext
{
static EFDemoContext()
{
//开发环境中,如果数据结构发生变化,需要重新建库,每次建库后要重新插入测试数据,可以用DropCreateDatabaseIfModelChanges类来实现(生成环境中请使用 Migrations做数据迁移)
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EFDemoContext>());
}
public EFDemoContext():base("EFToMysqlCon") { }
public DbSet<Student> Students { get; set; }
}
}
4, le fichier de configuration pour ajouter une chaîne de lien
4.1 Paramètres spécifiques en fonction de leur modification en conséquence
<connectionStrings>
<add name="EFToMysqlCon" connectionString="Data Source=127.0.0.1;port=3306;Initial Catalog=EFDemoDb;user id=root;password=123456;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
5, la migration des données
5.1 Migration de données commandes fréquemment utilisées
命令1:启动EF数据迁移
Enable-Migrations -ContextTypeName 命名空间.上下文名称
命令2:创建迁移文件
Add-Migration 自定义名称
命令3:更新数据库
Update-Database
5.2 Ouvrez la console Package Manager
![](https://img2020.cnblogs.com/blog/916611/202004/916611-20200405165320031-1396564974.png)
5,3 (5,1) sont réalisées dans les commandes communes
![](https://img2020.cnblogs.com/blog/916611/202004/916611-20200405165329735-1059007612.png)
Voir par Navicat MySQL 5.4
![](https://img2020.cnblogs.com/blog/916611/202004/916611-20200405165340446-2092732667.png)