选择数据源 mysql_EF选择Mysql数据源

EF添加ADO.NET实体模型处直接选择Mysql数据源

最近想到EF是连接多数据库的orm框架,于是就想测试下。查了一堆网上资料后,测试连接mysql成功。步骤如下:

1、在你项目Model层中nuget安装MySql.Data.Entity

90ece1ba6576125caa21aa588c6461ce.png

如果没安装这个provider 就进行下面的步骤。就会出现:

2994ebd6759f1232f52f2610dc2b4280.png

2、MySql官网下载mysql-installer-community-5.7.13.0

9dd03e499078138023290777d26233b8.png

cfffc2ff9f30284188a783cba56b1980.png

我这边是没安装过mysql,所以是安装全部,第一个选项,MySql Installer。主要目的除了安装mysql,就是安装mysql对于vs的数据源驱动,便于我们在新建ADO.NET实体模型的时候,选择对应的数据源(MySQL Database)。

a7317ba56540c95e85729581383bb68c.png

3、安装好后,我这个传说中的window程序员必须要下个图形化管理界面。

184d15e224a198e2d58116f4354e465d.png

然后里面新建个数据库,测试用。

60b07a4b33c3880ce2a7a994eefe02db.png

4、接下来就可以进行测试啦~~~

首先在VS中新建个类库,这个不多说了,新建项目-->ADO.NET实体模型

a6af3e58e5eee0d43fc0054058692f33.png

新建连接

43d88cedc6a230889bed1d9f8562d152.png

更改数据源

a7317ba56540c95e85729581383bb68c.png

选择MySQL Database

af95b2c19427f41b763dafe341f713f9.png

Server name:localhost

用户名密码就不多说了。

然后就开始选择表进行实体映射,然后问题就出来了~~~

dca36de3fe588ce3346c926b4c533d9b.png

很奇怪哦,我们压根没这个TableDetails这个表,又哪儿来的主键类型为null。

百度!无所不能的网友给出了个解决问题的网址——>stakoverflow:

3d0da6436d619aed66e639933c5f4e84.png

老外回答简洁,靠谱。

根据这回答咋操作呢?直接扔截图吧。

打开mysql的cmd窗口

eb2538ae046a8746764edf543c420d03.png

use test;

set global optimizer_switch='derived_merge=OFF';

4aadc9d33f78efb9f41b80acb5a9891a.png

问题解决~~~~

这里注意(对于不熟悉mysql命令行的同志,比如我):结尾一定加分号!!!

上文测试用的数据库test下的school表就映射成功勒

01a825ed012444781fda787cd0ec5c37.png

完美~~~

提问:对于oracle,postgresql,这些数据库我也下载了,可能选择更改数据源的时候没有出来这些选项,这是需要我们单独去安装的吗?哪儿安装?找不到....

相关节点配置(个人纪录):

1、UI的webconfig配置数据库连接字符串肯定是少不了的。(连接字符串在我们Model层创建ADO.NET实体模型的时候就自动生成在了Model层的APPCONFIG中,拷贝过来即可)

2、nuget安装MySql.Data.Entity只需在Model层中进行,但是跟连接字符串一样,得再webconfig中定义一个节点,节点里面写路径方便程序去读取相关信息。

在entityFramework节点下添加MySql.Data.MySqlClient(System.Data.SqlClient是我们在UI nuget EntityFramework的时候自动加载的,sqlserver的驱动信息)

MySql.Data.MySqlClient同样我们在Model层nuget MySql.Data.Entity后就加进了APPCONFIG中,拷贝到UI的webconfig即可。(若嫌麻烦,就直接在UI层也nuget MySql.Data.Entity,节点就自动加上去了)

如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!

声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值