我在一个新的c项目中工作,我们想使用EntityFramework6,但每次我们都想根据我们使用的数据库生成模型。但是,当我使用向导生成ado.net模型时,在我选择数据库和实体框架之后,我单击“下一步”按钮,而不是出现选择表的窗口,窗口将消失,没有任何类型的错误。
我使用的是visual studio 2017社区版,我已经安装了mysql connector v.8.0.11。如果我将mysql连接器版本和实体框架降级到v5,那么一切都可以正常工作,但是在我将连接器和实体框架更新到版本6之后。*我得到了上面报告的问题。
5条答案
按热度按时间ocebsuys1#
-第一步-
使用mysql安装程序:https://dev.mysql.com/downloads/installer/
下载
1-mysql路由器
2-连接器/odbc
3-接头/c++
4-连接器/网络
5-mysql服务器
全部,完全是版本:8.0.12
那就去
visual studio > manage nugget packages > browse(tab)
(安装)1-entityframework->版本6
2-mysql.data->版本8.0.12
3-mysql.data.entity->版本6
4-mysql.data.entityframework->版本8.0.12
那就去
visual studio > manage nugget packages > updates(tab)
将google.protobuf更新至版本3.6.0
-第二步-Right click your project > Add new Item > Data (left navbar) > Ado.net Data Model
将出现连接对话框,使用mysql(版本8.0.12)凭据创建新连接。(检查输入:在connectionstring中包含敏感数据..)
你会出错的!因为预配置的mysqlproviderservices附带了8.0.11版本,所以您只需在app.config文件中更改它(下一步)。问题是:当您查看mysql.data.entity的最新版本是6.10.7时,这意味着下载connector/net 8时会出现版本不兼容,从而导致ado.net数据实体向导关闭。
-第三步(最后一步)-
转到app.config文件,将“providers”标记更改为那样
仅此而已,现在构建项目,您就可以创建实体数据模型(例如,首先是数据库),Mapmysql数据库并在项目中查询它
资源:
https://www.youtube.com/watch?v=xvgeeavp4m4
https://www.devjockeys.com/blog/c-sharp/using-entity-framework-with-mysql-a-code-first-example/
https://ozanecare.com/connect-mysql-with-visual-studio-2019/
先用mysql数据库构建实体框架
t5zmwmid2#
有一件事值得注意:
mysql版本6和版本8需要不同的mysql entityframework包(这可能是海报将其mysql连接器从8降级到6的原因)
如果您的mysql连接器是8.x.x版本,则可能需要安装以下nuget软件包:https://www.nuget.org/packages/mysql.data.entityframework/
如果mysql connector是6.x.x版,则需要:https://www.nuget.org/packages/mysql.data.entity/
并安装与mysql连接器完全相同的版本。否则,有些事情就行不通了。
j2qf4p5b3#
所以在我自己挣扎了三天之后,我终于找到了问题所在。。。
因此,必须从nuget包版本下载的mysql.data和mysql.data.entity与必须下载的mysql connector/net版本直接相关。
当您查看mysql.data.entity的最新版本是6.10.7时,这意味着下载connector/net 8时会出现版本不兼容,导致ado.net数据实体向导关闭。
下载以下内容并使用bam:
nuget包:
rt4zxlrg4#
我在web.config上通过以下配置解决了这个问题
我还提到:
https://www.nuget.org/packages/mysql.data.entityframework (8.0.11)
https://www.nuget.org/packages/mysql.data/ (8.0.11)
uhry853o5#
这是您使用的mysql连接器软件包版本的问题。就我而言,我正在使用
MySQL.Data, MySQL.Entity and MySQL.Web
来自努吉。如果我使用6.9.11之后的任何版本,那么我就会得到你提到的行为。