Data Provider 中没有.net framework Data provider for Mysql 的解决方法

近来做的一个项目中,数据库用的是 MySql, 而在项目使用 Entity Data Model 来做数据服务层
,可是在项目中添加 Data Entty Model 时,一般我们都会选择从数据库中直接生成,可是在选择
Data Provider 时,就是没有 .net framework  Data provider for Mysql, 里面默认就只有一个

.net
framework Data provider for SQL Server , 这个只能与 Microsoft 的 SQL server
或者 mssql server 连接,如果和 Mysql 连接就会出错,接下来从数据库生成 数据实体这一步就没法做,工作进展就卡在了这了,
查询了好多资料,折腾了一两天,问题最终还是被解决了,可牺牲的是时间与效率,于是有了这篇博客,也是自己对这期间尝试的总结。好了,不多说了,下面我把
具体的步骤列出,同时配有截图:

在项目中右键单击,添加新项:

2.选择 Data--> Ado.net entity data model

3. 选择从数据库生成模型

4. 选择数据来源


是在这一步中,原来的 Data provider 就只有珍上 net framework data provider for sql
server ,那个 net framework data provider for mysql 是我自己加进去的,下来就是 水添加 net
framework data provider for mysql 关键的一步:

下载并安装 : mysql-installer-community-5.6.21.1

同时修改以下文件:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 文件

<system.data>
    <DbProviderFactories>

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

PublicKeyToken 根据自己用的 MySql.Data.MySqlClient 的版本号来确定,在这里我用的是官网上最新的 6.9.5.0

重新启动项目,并重新添加数据实体模型

这下就OK了,问题终于得到了解决

时间: 2024-10-05 18:48:14

Data Provider 中没有.net framework Data provider for Mysql 的解决方法的相关文章

IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法

未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序.              说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.             异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序.源错误: 执行当前 Web

VS2010在64位系统中连接64位Oracle出现的问题和解决方法

C#使用System.Data.OracleClient连接Oracle数据库.我的是window7/64位系统,装了一个64位的oralce 11G r2 客户端是64位的 用VS10调试错误信息如下: 尝试加载Oracle客户端库时引发BadImageFomatException.如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题. 错误原因是VS调试工具是32位,连接的程序所用的OracleClient也是64位的,从而导致兼容问题.当然,如果在64位操作系统上按

Eclipse中输入变量会自动补全上屏的解决方法

我自己在启动Eclipse代码补全后输入感觉确实爽多了,但是每次输入变量后一按下空格,编译器会自己帮你写一个很蛋疼的名字,比如你输入了:String mStr后按下空格,它就变成了mString,十分讨厌.下面是正规的解决办法,但是经过我反复折腾,我实在没办法把插件的源码显示到工程中.于是偷个懒去网上下载了已经修改好的jar包,成功搞定. 我自己复制jar包的目录是:D:\Work Appliactions\adt-bundle-windows-x86-20140702\eclipse\plug

VMware ESXi中不能显示CPU及内存使用情况的解决方法

今天一个网友问我,他管理的机房有4台ESXi 5.1的服务器,其中三台ESXi Server不能显示各个虚拟机占用的CPU.内存情况了,如图1-1所示. 图1-1在"虚拟机"选项卡中不能显示每个启动虚拟机的资源占用情况 另外,在VMware ESXi的"摘要"中,CPU与内存的使用情况也统计出错,如图1-2所示. 图1-2 摘要统计出错 在出现这个问题时,各个ESXi Server上的虚拟机可以正常启动.关闭,并且各虚拟机运行的系统及应用不受影响. 从上面两个图我看

pentaho中Invalid byte 3 of 3-byte UTF-8 sequence的解决方法

今天在创建数据源的时候报了这么一个错 Invalid byte 3 of 3-byte UTF-8 sequence. 上网一查,说是有中文,字体不相符,可是我没有写中文,为了能继续往后进行,修改了如下文件 在start-pentaho.bat中添加了一句代码 修改前 IF "%BITS%" == "64" ( set CATALINA_OPTS=-Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Dsun.rmi.dgc.clien

C++中的字符数组逐个赋值时报错的解决方法

C++中的字符数组逐个赋值时报错的解决方法 C++中定义一个字符数组的时候,如果初始化,则cout的时候不会出错,但是在逐个字符赋值的时候,很容易出错. #include<iostream> #include<string> using namespace std; int main() { //char s[100] = "china"; char s[100]; s[0]='c'; s[1]='n'; s[2]='\0'; cout<<s<

linux下php中找不到php配置文件php.ini的解决方法

自己编译安装的php经常会遇上这种问题,找不到php.ini.可以按照如下方法解决: 首先需要说明的是,如果你的php是编译安装的,那么默认是没有php.ini的,你必须自行去源码包里边拷贝.运行phpinfo()命令可以看到php指定的配置文件路径,把配置文件放到这个路径中即可. linux下php中找不到php配置文件php.ini的解决方法

IE6/7中li浮动外边距无法撑开ul的解决方法

昨天群里有人提出了这样的问题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&

Eclipse中出现JS文件前有红叉的解决方法

Eclipse中出现JS文件前有红叉的解决方法,亲测有效: Right click your project  (右单击工程属性) Select Properties -> JavaScript -> Include(选择JavaScript下的include菜单) Select Source tab (It looks similar to the Java Build Path Source tab)(选择SOURCE标签) Expand source folder(展开菜单) Highl