架构师_程序员

查看: 674|回复: 2

[资料] EF(CodeFirst) + MySQL

[复制链接]
发表于 2020-7-3 14:30:39 | 显示全部楼层
本帖最后由 QWERTYU 于 2020-7-3 14:43 编辑

前提:

准备事项 下载地址
mysql-installer-community-8.0.18 https://downloads.mysql.com/archives/installer/
MySQL for Visual Studio 1.2.7 https://downloads.mysql.com/archives/visualstudio/
mysql-connector-net-6.10.7.0 https://downloads.mysql.com/archives/c-net/


操作步骤:
1:添加ADO.NET 实体数据模型,选择CodeFirst模型。
1-1.png
1-2.png

2:添加MySql.Data.Entity的引用(注意版本要和本机中安装的一致)。
1-3.png

3:添加修改连接字符串,(如果是新建的类库,则应该在应用程序配置文件中手动添加连接字符串。)
1-10.png

4:添加一个测试的用户类。
1-4.png

1-5.png

5:打开nuget程序包管理控制台,选中对应项目。执行enable-migrations命令,会生成存放版本号的文件夹Migrations
1-6.png

6:在生成的Migrations文件夹下,Configuration类的构造函数里加上:SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
1-7.png

7:执行add-migration命令,输入一个版本号的名字。(以后每次修改模型,都需要执行这一步操作)
1-8.png

8:执行update-database命令 Update-Database -Verbose 加个-Verboses 可以查看生成的sql语句,执行完此命令后,数据库会最终生成(以后每次修改模型,都需要执行这一步操作)
1-9.png


错误问题解决:
1:执行Enable-Migrations,报错:未解析成员“System.Data.Entity.Migrations.Design.ToolingFacade+GetContextTypeRunner,EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的类型。
解决方案:查看类库和应用程序使用的EntityFramework版本是否一致,我的类库里面是6.2.0,应用程序里面是6.1.3,把应用程序里改成6.2.0,再次执行未报错。

2:执行Add-Migration,报错:未为提供程序“MySql.Data.MySqlClient”找到任何 MigrationSqlGenerator。请在目标迁移配置类中使用 SetSqlGenerator 方法以注册其他 SQL 生成器。
解决方案:在构造函数中加入SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());






上一篇:.NET项目重命名详解
下一篇:.Net/C# Selenium 自动化测试获取cookie值
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-7-4 00:20:47 | 显示全部楼层
很好,学习了,谢谢楼主
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-7-4 22:40:25 | 显示全部楼层
谢谢分享!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-12-2 13:52

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表