vs2015+WebAPI6+EF6使用教程

一、创建项目

      
创建DAL、Service、Model、ViewModel、WebAPI项目
引用如下:
Model:无引用
ViewModel:无引用
DAL:引用Model、ViewModel
Service:引用DAL、Model、ViewModel
WebAPI:引用Service、Model、ViewModel

这里写图片描述


二、添加EF映射

      
1.Model右击->添加->类

这里写图片描述

2.选择来自数据库的EF设计器

这里写图片描述

3.新建连接->选择MySQL Database数据源

这里写图片描述

4.输入IP、用户名、密码->选择要用的数据名->点击测试(测试成功就好啦!)

这里写图片描述

5.选择是,在链接字符串中包含敏感数据—另存为名字(默认即可)->下一步

这里写图片描述

6.选择实体框架版本:这里应该选择6,因为WebAPI默认是6,Model层要与WebAPI对应,但是这里无法选择,不过可以将5升级成6

这里写图片描述

7.选择要映射到数据库中的表

这里写图片描述

8.将App.Config中的链接数据库的字符串复制到WebAPI的Web.config

这里写图片描述

9.DAL层如果想要正常使用需要添加EntityFramework6
工具->NuGet包管理器->管理解决方案的NuGet程序包(选择的版本需要与WebAPI匹配)

这里写图片描述


三、将EF5升级成EF6

00.如果不升级,将会报如下错误:

这里写图片描述

01.在NuGet包管理器中将Model层的EntityFramework改成6.1.3
报错如下:

报错中有一句话:
请参阅 http://go.microsoft.com/fwlink/?LinkId=260882
打开之后是微软的官方帮助文档,于是翻译成了中文,找到了将EF5升级到EF6

这里写图片描述

这里写图片描述

按照官网进行操作即可,步骤如下:
1. 安装EF6 NuGet软件包
2. 确保删除了对System.Data.Entity.dll的程序集引用
如果没有的话手动删除一下吧!
3. 交换任何EF Designer(EDMX)模型以使用EF 6.x代码生成
  3.1删除图片中的两个文件,然后在图中->添加代码生成项->自动生成

这里写图片描述
      3.2名字与原来EF映射的名字相同即可
这里写图片描述

4. 在DAL中和WebAPI中的controller中添加
using System.Data.Entity.Core;


四、引用

运行时会报如下错误:

这里写图片描述

解决方案:
在Web.config以及App.config中的添加以下代码

<providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>

同时:在Model和WebAPI中引用MySql.Data.Entity.EF6.dll
路径如下:C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.7\Assemblies\v4.5


五、结果如下

这里写图片描述


六、总结

1.沉重冷静
2.多看报错信息(可以给我们提供解决方案的路径,提示信息(答案就在问题中))
3.将错误记录下来,把每一个的解决方案记录下来,不然很容易兜圈子
4.我们是最棒的!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值