C# .NET 开发 使用 EF 连接 MySQL EF Code First Migrations 乱码

前言:以前一直用ASP.NET 写SQL 语言连接,今天看到了EF,使用该框架做一下代码重构,主要介绍与解决遇到的坑,其中参考的博客和官方论坛有点多,整理了一下算是自己的原创吧!,第五条 有不对的地方,留言指出,万谢。

开发环境:win10 1903+MySQL 5.7+.Net 4.5

问题1:基本部署的顺序?

答:一| 添加相关的dll文件,不管是使用NuGet查询 MySQ安装相关,或者 使用命令(这个命令会安装10.X版本 然后就会失败,问题为解决哦)

install-package MySql.Data.Entity

效果都是一样的,需要注意的是版本,.NET 4.5下建议使用9.x 别问为什么,我由高版本到低版本一个个试的就这个成功。若.NET 与MySQL版本最新,建议使用新版。

二| 添加 ADO.NET 实体数据模型,这东西本质上就是一个基础DbContext 的类,自己写也一样,结构会自己创建,需要选的是空的Code First 模型,当然也可以选其他的。

三|  配置 config  别问这文件在哪里?VS 看到你上面的操作,会帮你生成,需要注意的是配置MySQL 连接信息  放出来给你看看,如果你按顺序来,会自动添加的。

 
    
    
      
      
    
  

  然后按需要将连接节点加入


    
  

四| 后续命令  按顺序一个个来

开启 迁移   

enable-migrations

如果你失败了,看一下这个东西,在不在你的config里(注意 版本 与publickey  这个是个使用的版本对应的) 

  
    
      
      
    
  

初始化 迁移类  这个命令是第一次使用的时候执行,会生成一个类,用于创建数据库,与表结构,如果你Mode定义的没问题

 Add-Migration InitialCreate

使用代码迁移  嗯,最后一步了,调用上一步创建的类。

 update-database

问题2:使用的过程中遇到了什么问题?

1:Mysql,中文乱码,生成语句,运行出错:

解决方案:修改配置文件将mysql默认编码设置为UTF8;

#path:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini


[client] 
default-character-set=utf8 

[mysqld]
# 修改处2:添加以下3行 
default-storage-engine=INNODB
character-set-server=utf8 
collation-server=utf8_general_ci

#说明‘#’代表注释,可以直接追加到文件最后
#附执行查看mysql编码命令:
#mysql> show variables like "%char%";

再EF连接字符串中追加指定编码

;Character Set = utf8;

 

你可能感兴趣的:(.NET,数据库,框架,EF,MySQL)