gpt4 book ai didi

c# - Visual Studio 2017在连接列表中未显示MySQL

转载 作者:行者123 更新时间:2023-11-29 05:56:27 25 4
gpt4 key购买 nike

我正在使用“Visual Studio 2017专业版”。我无法让一个项目认识到MySQL是一个可用的DB选项。创建新模型时,MySQL不会显示在可能的连接列表中。我知道有很多关于这个话题的问题和其他网页,因为我尝试了很多建议。每一个在原因和解决方案上都有微妙的不同。所有的解决方案似乎都不适合我。
我已经尝试了以下与VS 2017和2015的相同结果。我有旧版本的VS可用,但似乎不值得这么远。我也试过在必要时用“社区安装程序”和独立的msi安装最新和旧版本的MySQL。我回到了MySQL的“最新”6.10之前的版本。
首先,这段传奇始于上周,当时我注意到nuget提供了MySQL包更新。我应用了它们,然后使用社区安装程序升级已安装的MySQL组件。nuget的变化确实适用。但是社区安装程序无法卸载MySQL for VS。系统安装程序无法卸载它。重启和电源循环什么也没做。
根据我们当地技术支持人员的建议,我使用了第三方卸载程序,结果比我们想象的更具攻击性。它似乎在注册表中随机地删除了它找到的任何东西。长话短说(呃),我的机器最终被重新损坏了。所以,我有一个新的windows安装。
考虑到新的Win10平台,我安装了我通常使用的各种东西,包括我通常使用的VS版本。我安装了最新的社区MySQL安装程序。我做了一个“自定义”MySQL安装,因为我不需要在这个设备或结构或其他许多东西上安装服务器。
我完成了所有东西的基本重新安装,然后重新启动以确保安全。我从VS 2017开始,创建了一个新的web应用程序,其中包含最新的可用版本.Net(4.6.1)。我应用了nuget更新并添加了EntityFramework和MySQL.Data。然后我尝试创建一个新的“代码优先”模型。
我可以达到要求我建立联系的程度。当我单击按钮时,可用的数据库提供程序列表只显示MS SQL。
我看过一些文章说要在Web.config中添加行,我也看到了MySQL.Net连接器文档,它们说了同样的话。我可以在Web.config中看到MySQL条目,但是它们在创建连接时不会出现。
奇怪的是,我可以转到Tools -> Connect to Database查看我的机器知道的包括MySQL的每种DB类型。我可以创建连接字符串,它可以工作。我可以在“服务器资源管理器”中看到数据库,但这并不能使它对代码可用。
好吧,我已经一遍又一遍地遵循了上面的步骤,包括降低EntityFramework和MySQL的版本。
我最近的一次尝试让我回到了VS和MySQL的最新版本。下面是Web.config文件的相关(我认为)部分。注意defaultConnectionFactory条目是LocalDbConnectionFactory。我把它改成了SqlConnectionFactory,但没有什么不同。我还更改了提供者的顺序和主要块的顺序。

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
</provider>
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add description=".Net Framework Data Provider for MySQL" invariant="MySql.Data.MySqlClient"
name="MySQL Data Provider"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>

编辑
我现在的印象是VS2017是一个不可用的混乱伪装成一个发布,可销售的产品。我回到了2015年。
我已经接近于在2015年让它发挥作用。我已经为VS和.Net安装了最新的MySQL项。我已经将nuget EF包降级到6.0,MySql包降级到6.8.8。
在中,我现在称之为“过去的美好时光”,我可以通过选择Models文件夹,选择“添加新项”,选择ADO.Net模型,选择一个连接选项(MySQL),输入连接信息,选择DB First或Code First,等待scaffolding乐趣完成,来向MVC项目添加新模型。
现在,我必须首先转到 Tools -> Connect to Database并创建到MySql数据库的连接。如果我不这样做,我将不会在以后可能的连接列表中看到MySQL然后我清理并建立项目。接下来,我尝试创建如上所述的模型。不我可以看到MySQL连接选项,我可以输入DB creds并测试连接。
下一步是先选择DB或Code。在这两种情况下,单击“下一步”按钮会闪烁一个空白弹出窗口,然后消失。没有显示错误,也没有连接。
过去从来没有这么难过。
在2015年和2017年,我尝试了很多不同的MySQL和EF版本。如果有魔法组合请告诉我。

最佳答案

我已经打了两个星期了。我终于找到了一个适合我的版本组合。以下是两周前对我的Win10桌面的一个原始重影。在开始处理MySql之前,所有补丁都应用到了系统软件中。
就在今天早上,我重新阅读了这个帖子(MySql论坛):https://forums.mysql.com/read.php?174,659102,660369#msg-660369
我以为我以前试过那些建议,但我一定弄错了其中一个版本。我认为海报的基本策略是正确的。在我的例子中,我卸载了所有本地MySql部分和安装程序。
我下载了最新的开发版本MySQL for Visual Studio(本文撰写时为2.0.5msi),并安装了它。
我找到了.Net连接器的旧版本并安装了6.9.11
在VS 2017中,我使用.Net 4.6.1创建了一个虚拟项目。
我申请了等待VS更新。
我做了这个项目。
我转到“Project->Manage Nuget Packages”,安装/降级EntityFramework到6.0。
我在6.9.11版安装了MySql.Data、MySql.Data.Entity和MySql.Web
我清理并构建了这个项目,然后尝试从MySql数据库中添加一个新的“代码优先”模型。。。成功了!

关于c# - Visual Studio 2017在连接列表中未显示MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49036983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com