Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从visual studio 2015连接到mysql_Mysql_Visual Studio_Visual Studio 2015_Mysql Connector - Fatal编程技术网

无法从visual studio 2015连接到mysql

无法从visual studio 2015连接到mysql,mysql,visual-studio,visual-studio-2015,mysql-connector,Mysql,Visual Studio,Visual Studio 2015,Mysql Connector,所以我已经花了大约2天的时间来修复这个问题。我已经成功地在我的工作电脑上修复了这个问题,但无法在我的家用电脑上运行。我读了十几篇SO文章、oracle论坛文章等等,但它仍然不起作用 我有visual studio的1.2.4 msql,它应该是在vs2015上运行的版本。我已经安装了mysql connector 6.8.6,并首次尝试通过nuget将mysql添加到我的项目中,但在找不到6.8.6版本后(一个包有6.8.3和6.9.7,另一个包有其他版本…),我引用了我的C:\程序文件(x86

所以我已经花了大约2天的时间来修复这个问题。我已经成功地在我的工作电脑上修复了这个问题,但无法在我的家用电脑上运行。我读了十几篇SO文章、oracle论坛文章等等,但它仍然不起作用

我有visual studio的1.2.4 msql,它应该是在vs2015上运行的版本。我已经安装了mysql connector 6.8.6,并首次尝试通过nuget将mysql添加到我的项目中,但在找不到6.8.6版本后(一个包有6.8.3和6.9.7,另一个包有其他版本…),我引用了我的C:\程序文件(x86)\MySQL\MySQL Connector Net 6.8.6\Assembly\v4.5,并将4个文件复制到整个fkin计算机上。我把它贴得到处都是。vs2013私有程序集,我的packages文件夹,我甚至没有提到过它,我想是vs2015文件夹。我对Mysql.Data进行了搜索,并将这些文件粘贴到了结果显示的每个文件夹中。我已经重建了大约100-200次解决方案,并且哭了至少20分钟

要生成新的ADO.Net实体数据模型,我必须做什么

我一直觉得这很愚蠢 我完全不知道下一步该怎么办。我只是想编写代码,但每次我开始做一些事情时,我都会在不起作用的工具上浪费几天时间。我真的必须在记事本中编写代码,这样我才能确定某些东西不起作用是我的错吗

这是我的app.Config文件。我的项目中没有其他内容

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v12.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <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.8.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.8.6.0" newVersion="6.8.6.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <connectionStrings>
    <add name="KPlusConnectionString" connectionString="server=dito.ninja;user id=xxx;password=xxx;database=xxx" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
</configuration>

这对我很有用。 我有Visual Studio 2015,刚刚安装了最新版本的连接器:

请仔细阅读以下内容:

他们提到“Microsoft ASP.NET MVC”的版本可能是个问题。
错误的是,他们说VS2015附带版本5,但我已经将版本4与VS2015 Enterprise final一起安装。

为了让VS2015连接到MySql,您需要使用更高版本的MySql库。虽然这似乎是一个非常简单的答案,但老实说,我在这个过程中遇到了几个问题。考虑到这一点,我将写出一个过程,该过程一直对我有效,直到EF使用MySql和VS2015。因此,不用再多说了,以下是我一直在采取的措施,以使这项工作顺利进行

1) 确保MySql连接器安装已更新

2) 创建您的web项目

3) 开放裸体

4) 安装实体框架

5) 搜索MySql

6) 安装MySql.Data

7) 安装MySql.Data.Entity

8) 安装MySql.Data.Entities

9) 安装MySql.Web

10) 转到项目的参考并删除MySql.Data.Entity.EF6

11) 检查MySql.Data和MySql.Web库的版本。如果它们在6.9.6下,也删除它们

12) 通过浏览到您的.NET framework版本的mysql连接器的安装位置(我的是C:\Program Files(x86)\mysql\connector.NET 6.9\Assembly\v4.5)并获取mysql.Data.Entity.EF6.dll(我的版本是6.9.6,以后更改web.config时请记住这一点),添加一个新的引用

13) 如果其他库也是旧版本,请通过浏览解决方案中的packages文件夹并从其各自的文件夹中获取文件来添加对它们的引用。我通常不必这样做

14) 现在需要编辑Web.config。第一步是用此代码替换实体框架部分(将版本号更改为当前版本。请注意,我几周前在web上发现了此代码片段,没有原始链接。我向此信息的原始海报道歉。)


15) 确保DbProviderFactorys部分匹配

<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.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>

16) 保存并构建

我不确定这些步骤中有多少是实际需要的,但在最终完成之后,我不得不实际完成一些工作,没有时间进一步缩小范围。希望这能让你动起来


另外,如果在完成所有这些操作之后,向导在显示数据库中要创建实体的表之前消失了,那么这可能是我在此过程中遇到的三个问题之一。无法联系数据库服务器。用户没有对数据库所需的权限。添加了错误版本的MySql.Data.Entity.EF6作为参考,或者web.config中的版本号错误。如果我从我的解决方案的packages目录中获取这个文件,我经常会遇到这个中止的向导,并且没有错误消息问题。每次从MySql安装目录抓取它对我来说都很好。

尝试过这个,但对我来说不起作用。最终起作用的是确保我有正确的司机。我运行64位Windows 7计算机。我最终不得不安装MySQL ODBC连接器/驱动程序的32位版本,并使用以下连接字符串“Provider=MSDASQL;driver={MySQL ODBC 5.3 ANSI driver};Server=localhost;Database=xxxx;User=xxxx;password=xxxx;Option=3”;解决了这个问题。在一个新项目上测试了它,没有做上面所有的更改,它工作得很好。这篇文章非常有助于解释这一点:。希望这能为用户节省大量时间

从此站点安装软件包在“开发版本”选项卡中。

我停止了Visual Studio。。我安装了。等待。。永远的接缝。Visual studio将在后台运行

等待完成

重新打开VisualStudio。加油

祝你好运

  • 对于VS2015,我删除了通过MySql安装程序社区安装的所有版本。我选择了C
    <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.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>