VS2017社区版EF6结合MySQL8.0.11 Database First向导闪退求助
解决Visual Studio 2017 + EF6 + MySQL Connector 8.0.11反向生成模型时向导闪退的问题
我之前也碰到过完全一样的情况,这大概率是MySQL Connector 8.0.11和Entity Framework 6、Visual Studio 2017之间的兼容问题导致的,给你几个经过验证的解决方向:
1. 降级MySQL Connector到兼容版本
MySQL Connector 8.x系列对老版本VS和EF6的支持存在一些兼容性bug,最稳妥的办法是卸载当前的8.0.11版本,换成MySQL Connector 6.10.9——这个版本是社区验证过的、和EF6+VS2017适配度极高的稳定版本。安装完成后重启Visual Studio,再重新走ADO.NET模型向导流程,应该就能正常弹出表选择窗口了。
2. 手动通过NuGet配置+命令行生成模型
如果不想降级Connector,可以跳过闪退的向导,用NuGet包+Package Manager Console命令来手动生成模型:
- 打开项目的NuGet包管理器,安装
EntityFramework(确保选择6.x的最新稳定版) - 安装
MySql.Data.EntityFramework,注意版本要和你的MySQL Connector版本保持一致(即8.0.11) - 修改项目的
App.config或Web.config,在<entityFramework>节点中添加MySQL的EF提供程序:<entityFramework> <providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework" /> </providers> </entityFramework> - 打开Package Manager Console,执行反向生成命令(替换成你的数据库连接信息):
执行完成后,模型文件会自动生成在项目的Scaffold-DbContext "server=你的数据库地址;user id=账号;password=密码;database=目标数据库名" MySql.Data.EntityFramework -OutputDir Models -ForceModels目录下。
3. 检查Visual Studio组件完整性
有时候缺少必要的VS组件也会导致向导闪退:
- 打开Visual Studio安装器,选择“修改”当前的VS2017社区版
- 在“工作负载”中找到数据存储和处理,确保勾选了其中的“ADO.NET实体框架工具”等相关组件
- 点击“修改”完成组件安装,重启VS后重试向导
4. 清理Visual Studio缓存
VS的缓存文件损坏也可能引发这类异常:
- 完全关闭所有Visual Studio窗口
- 打开文件资源管理器,导航到
%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_<你的VS实例ID>目录(ID是一串随机字符,类似15.0_abc123def) - 删除该目录下的
ComponentModelCache文件夹内的所有文件 - 重启Visual Studio后再次尝试向导流程
内容的提问来源于stack exchange,提问作者Rubemlrm
相关产品推荐
相关产品推荐

