dit*_*lav 8 mysql mysql-connector visual-studio visual-studio-2015
所以我已经花了大约2天的时间来解决这个问题.我已经成功地在我的工作场所电脑上修复它,并且无法在我的家用电脑上工作.我已经阅读了大约十几篇SO文章和oracle论坛的文章和诸如此类的东西,但它仍然不起作用.
我有1.2.4 msql for visual studio,它应该是一个适用于vs2015的版本.我已经安装了mysql连接器6.8.6,并且首先尝试通过nuget将mysql添加到我的项目中,但之后无法找到6.8.6版本(一个包有6.8.3和6.9.7,然后又是其他的东西对于其他...)我已经引用了我的C:\ Program Files(x86)\ MySQL\MySQL Connector Net 6.8.6\Assemblies\v4.5并且已经将4个文件放在那里并将它们复制到了整个fkin电脑.我到处都贴了它.vs2013私有程序集,我的包文件夹,我甚至没有参考,我想一些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>
Run Code Online (Sandbox Code Playgroud)
小智 14
为了使VS 2015连接到MySql,您需要使用更高版本的MySql库.虽然这似乎是一个非常简单的答案,但说实话,我遇到了一些问题.考虑到这一点,我将写出一个一直为我工作的过程,只要让EF使用MySql和VS2015.所以,不用多说,这里是我为了让它发挥作用而采取的步骤.
1)确保更新MySql连接器安装
2)创建您的Web项目
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框架版本的mysql连接器的安装位置添加新引用(我的是C:\ Program Files(x86)\ MySQL\Connector.NET 6.9\Assemblies\v4.5)和抓取MySql.Data.Entity.EF6.dll(我的版本是6.9.6,我们稍后更改web.config时请记住这一点)
13)如果其他库也是旧版本,请通过浏览解决方案中的packages文件夹并从各自的文件夹中获取文件来添加对它们的引用.我通常不必这样做.
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
16)保存并构建
我不确定这些步骤中有多少是实际需要的,但是在最终得到它之后我必须完成一些工作并且没有时间进一步缩小范围.希望这会让你感动.
PS如果完成所有这些后你通过向导它就会消失,然后它会向你显示数据库中的表来创建实体,这可能是我遇到的三个问题之一.无法联系数据库服务器.用户没有数据库所需的权限.添加了错误版本的MySql.Data.Entity.EF6作为参考,或者web.config中的版本号错误.如果我从我的解决方案的packages目录中获取此文件,我经常遇到这个aborted-wizard-with-no-error-message问题.从MySql安装目录中抓取它对我来说每次都很好.
| 归档时间: |
|
| 查看次数: |
25552 次 |
| 最近记录: |