为了让 VS 2015 连接到 MySql,您需要使用更高版本的 MySql 库。虽然这看起来是一个非常简单的答案,但老实说,我一路上遇到了几个问题。考虑到这一点,我将写出 1 个一直对我有用的流程,让 EF 与 MySql 和 VS2015 一起使用。因此,言归正传,以下是我为使其发挥作用而采取的步骤。
1)确保MySql连接器安装已更新
2) 创建您的网络项目
3)打开Nuget
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\Assemblies\v4.5)并获取 MySql.Data.Entity.EF6.dll(我的版本是 6.9.6,稍后更改 web.config 时请记住这一点)
13) 如果其他库也是旧版本,请通过浏览到解决方案中的包文件夹并从各自的文件夹中获取文件来添加对它们的引用。我通常不需要这样做。
14) 现在需要编辑 Web.config。第一步是用此代码替换实体框架部分(将版本号更改为您当前的版本。请注意,我几周前在网络上找到了此代码段,并且没有原始链接。我向原始链接致歉此信息的海报。)
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>
15) 确保您的 DbProviderFactories 部分匹配
<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 中的版本号错误。如果我从解决方案的包目录中获取此文件,我经常会遇到此中止向导且无错误消息问题。每次从 MySql 安装目录中获取它对我来说都效果很好。