You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Visual Studio数据库连接未在Entity Data Model向导中显示求助

解决方案:VS2015 Entity Data Model向导无法识别MySQL数据源

我之前也踩过VS2015搭配MySQL EF6的适配坑,结合你的情况,给你几个亲测有效的解决步骤:

1. 安装MySQL for Visual Studio插件

NuGet包只负责项目层面的引用,VS的数据源识别还需要专门的插件支持。你需要下载适配VS2015的MySQL for Visual Studio版本(推荐1.2.7,这个版本对VS2015和EF6的兼容性最好),安装完成后务必重启Visual Studio。

2. 确保NuGet包版本完全匹配

你的项目里MySql.DataMySql.Data.Entity.EF6的版本必须保持一致(你当前用的6.10.5)。如果之前安装时版本有差异,建议:

  • 先在NuGet包管理器中卸载这两个包以及EntityFramework
  • 重新安装同版本的MySql.DataMySql.Data.Entity.EF6和对应的EntityFramework(6.2版本没问题)

3. 完善App.config/Web.config的配置

除了你已有的connectionStringsproviders节点,还需要添加DbProviderFactories注册,让VS能识别MySQL数据源。在<configuration>节点下添加:

<system.data>
  <DbProviderFactories>
    <remove invariant="MySql.Data.MySqlClient" />
    <add 
      name="MySQL Data Provider" 
      invariant="MySql.Data.MySqlClient" 
      description=".Net Framework Data Provider for MySQL" 
      type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" 
    />
  </DbProviderFactories>
</system.data>

注意这里的Version要和你安装的NuGet包版本完全一致,PublicKeyToken保持c5687fc88969c44d即可。

4. 清理Visual Studio缓存

VS的缓存有时候会导致插件或数据源识别异常,关闭VS后,删除以下目录的内容:

  • %LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
  • %USERPROFILE%\AppData\Roaming\Microsoft\VisualStudio\14.0\Settings
    重启VS后再尝试打开Entity Data Model向导。

5. 备选方案:改用Code First模式

如果EDMX向导始终无法正常工作,可以考虑跳过向导,直接使用EF的Code First模式:

  • 编写对应数据库表的实体类
  • 创建继承自DbContext的上下文类,在构造函数中指定连接字符串名称:
public class FinanceContext : DbContext
{
    public FinanceContext() : base("name=finance") { }
    public DbSet<YourEntity> YourEntities { get; set; }
    // 其他DbSet...
}

这种模式不需要依赖VS的向导,配置更灵活,也能避开数据源识别的问题。

额外排查点

如果以上步骤都无效,检查你的XAMPP中MySQL的版本:6.10.5版本的MySql.Data包对MySQL 8.0及以上版本支持不佳,如果你的MySQL是8.x,建议升级NuGet包到8.x版本(注意VS2015对8.x包的兼容性可能有限,必要时可以考虑降级MySQL到5.7版本)。

内容的提问来源于stack exchange,提问作者Ciphra

火山引擎 最新活动