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

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

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

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

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

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

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

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

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

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

新建连接

更改数据源

选择MySQL Database

Server name:localhost

用户名密码就不多说了。

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

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

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

http://stackoverflow.com/questions/33575109/mysql-entity-the-value-for-column-isprimarykey-in-table-tabledetails-is

老外回答简洁,靠谱。

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

打开mysql的cmd窗口

use test;

set global optimizer_switch='derived_merge=OFF';

问题解决~~~~

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

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

完美~~~

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

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

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

<connectionStrings>
<!--mysql的数据库连接字符串-->
<add name="MysqlEntities" connectionString="metadata=res://*/ModelMysql.csdl|res://*/ModelMysql.ssdl|res://*/ModelMysql.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;user id=joey;password=lovemary;persistsecurityinfo=True;database=test"" providerName="System.Data.EntityClient" />
</connectionStrings>

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,节点就自动加上去了)

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>

  

如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

EF选择Mysql数据源的更多相关文章

  1. vs2012新建实体数据模型(EF)时无Mysql数据源

    sql转mysql数据库,用到EF,遇到vs2012新建实体数据模型时无Mysql数据源的问题. 问题截图如下: 解决方法1:(简单的的解决方法,有可能解决问题,如不能解决问题,请看解决方法2): ( ...

  2. 关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案

    在win7,win10,vs2015,vs2017之间折腾了两天,死活就是调不出来Mysql数据源.真是活见鬼了. 直接说方案吧. 一,卸载你所安装过的mysql-connector-net.mysq ...

  3. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程

    简述C#中IO的应用   在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.I ...

  4. Visual Studio2015 、2017中如何支持MYSQL数据源

    原文:Visual Studio2015 .2017中如何支持MYSQL数据源 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/ght886/arti ...

  5. Visual Studio2015 、2017中如何支持MYSQL数据源(转)

    转至:https://blog.csdn.net/ght886/article/details/80902457 Visual Studio默认只显示微软自己的SQL Server数据源,如下图所示: ...

  6. Loadrunner参数化连接oracle、mysql数据源报错及解决办法

    Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64,  两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...

  7. Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源

    熟悉Entity Framework应该对以下图片不陌生,他就是ADO.NET实体数据模型向导:可以将数据库的表自动生成模型类,或者创建Code First的模型文件. 但是这个模型向导默认只显示微软 ...

  8. 基于geoserver的REST服务完成mysql数据源动态发布

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 在之前的<简析GeoServer服务的内部文件组织以及 ...

  9. Linux下coreseek环境安装 、mysql数据源、sphinx扩展安装及php调用

    一.安装m4-1.4.13.autoconf-2.64.automake-1.11.libtool-2.2.6 下载安装m4-1.4.13.autoconf-2.64.automake-1.11.li ...

随机推荐

  1. php处理三级分类数据

    <?php // 链接数据库 $link = mysqli_connect('localhost','root','root'); if($link == null){ exit; } mysq ...

  2. Week7 Teamework from Z.XML-NABC

    NABC 引言:我们团队计划做一个手机端的类RPG2d游戏.之所以我们定义为类RPG,是因为我们希望弱化RPG在游戏中的概念--减少或者排除人物对话等较为无趣的内容,而将重点放在玩家的娱乐享受中.为了 ...

  3. lintcode-101-删除排序数组中的重复数字 II

    101-删除排序数组中的重复数字 II 跟进"删除重复数字": 如果可以允许出现两次重复将如何处理? 样例 标签 数组 两根指针 脸书 思路 参照上一篇博客lintcode-100 ...

  4. (转)MongoDB numa系列问题三:overcommit_memory和zone_reclaim_mode

    内核参数overcommit_memory : 它是 内存分配策略 可选值:0.1.2.0:表示内核将检查是否有足够的可用内存供应用进程使用:如果有足够的可用内存,内存申请允许:否则,内存申请失败,并 ...

  5. Metrics+ElasticSearch+grafana

    Metrics+ElasticSearch+grafana--性能监控解决方案 https://blog.csdn.net/Shiyaru1314/article/details/76906461 利 ...

  6. 【bzoj2006】[NOI2010]超级钢琴 倍增RMQ+STL-堆

    题目描述 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符的美妙度为Ai,其中A ...

  7. BZOJ4105 THUSC2015平方运算(线段树)

    注意到模数被给出且非常小,做法肯定要依赖于一些与此相关的性质.找题解打表可以发现循环节长度的lcm不超过60. 考虑怎么用线段树维护循环.对线段树上每个点维护这段区间的循环节.在循环中的位置,如果未进 ...

  8. [bzoj5321] [Jxoi2017]加法

    Description 可怜有一个长度为 n 的正整数序列 A,但是她觉得 A 中的数字太小了,这让她很不开心. 于是她选择了 m 个区间 [li, ri] 和两个正整数 a, k.她打算从这 m 个 ...

  9. 【Linux】线程池

    首先,线程池是什么?顾名思义,就是把一堆开辟好的线程放在一个池子里统一管理,就是一个线程池. 其次,为什么要用线程池,难道来一个请求给它申请一个线程,请求处理完了释放线程不行么?也行,但是如果创建线程 ...

  10. wmic的用法

    原始文章链接:http://blog.sina.com.cn/s/blog_5fb265c70100w4d0.html 一.wmic的基本命令格式简析 经常看网上的相关资料的话,读者可能会对wmic有 ...