Visual Studio 2015添加MySQL EF实体模型失败求助(已装EF6)
解决ASP.NET Web API中EF6连接MySQL实体模型创建失败的问题
我之前在VS2015环境下用EF6连接MySQL时也踩过类似的坑,结合你的环境配置来看,核心问题是MySQL相关NuGet包的版本不兼容——你用的MySql.Data是8.0.11,而MySql.Data.Entity是6.8.8,这两个包版本必须严格匹配,再加上VS2015对高版本MySQL驱动的支持有限,才导致了模型创建时的错误。下面是具体的解决步骤:
1. 卸载不匹配的NuGet包
首先打开NuGet包管理器(右键项目 -> 管理NuGet程序包),找到并卸载以下两个包:
MySql.Data(8.0.11版本)MySql.Data.Entity(6.8.8版本)
卸载后记得清理项目(Build -> Clean Solution),避免残留的引用干扰后续操作。
2. 安装兼容的匹配版本
针对你的.NET Framework 4.6.1和EF6.1.3,推荐安装6.10.9版本的MySQL驱动包,这个版本和EF6.1.3适配性最好,且能完美支持VS2015:
- 在NuGet中搜索
MySql.Data.Entity,选择6.10.9版本安装,NuGet会自动安装同版本的MySql.Data依赖包,确保版本一致。
3. 配置Web.config文件
安装完成后,检查并修改Web.config中的EF配置和连接字符串:
配置EF Provider
确保entityFramework节点下添加了MySQL的提供者:
<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework>
配置MySQL连接字符串
确保连接字符串的providerName设置为MySql.Data.MySqlClient:
<connectionStrings> <add name="YourDbContextName" connectionString="server=你的MySQL地址;port=3306;database=你的数据库名;uid=用户名;pwd=密码;" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
4. 重新生成并创建实体模型
- 先执行Rebuild Solution(Build -> Rebuild Solution),确保所有引用都正确加载
- 再次打开ADO.NET实体数据模型向导,选择“来自数据库的EF设计器”,选择你配置好的MySQL连接字符串,后续步骤按向导提示操作,应该就能正常生成Db实体模型了
额外提示:VS2015对MySQL 8.x版本的驱动支持并不完善,8.x驱动主要针对VS2017及以上版本优化,所以用6.x的稳定版本是更稳妥的选择。如果后续需要升级到MySQL 8.x,建议同时升级Visual Studio版本。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

