asp.net core 系列 19 EFCore介绍
一.概述
目前最新的EF Core版本是3.0,最稳定的EF Core版本是2.2。EF Core 的计划与 .NET Core以及 ASP.NET Core 版本同步。EF Core 是一个 .NET Standard库,使用 EF Core 开发面向 .NET Core 的应用。生成 .NET Core 应用需要安装 .NET Core SDK。最后,不同的EF 数据库提供程序使用可能需要 特定的数据库引擎版本、.NET 实现或操作系统。 请确保可用的 EF Core 数据库提供程序支持适用于应用程序的环境。
1.1 比较 EF Core 和 EF6
Entity Framework 6 (EF6) 是一种久经验证的数据访问技术。 2008 年首次发布。 EF6 在 .NET Framework 4.x 上运行,这意味着它仅在 Windows 上运行。未来EF6 产品仍受支持,并将继续提供 bug 修复和细微改进。
Entity Framework Core (EF Core) 是在 2016 年首次发布的 EF6 的完全重写。 它附带于 Nuget 包中,是 Microsoft.EntityFrameworkCore 的主要组成部分。EF Core 是一种跨平台产品,可以在 .NET Core 或 .NET Framework 上运行。EF Core 旨在提供类似于 EF6 的开发人员体验。 大多数顶级 API 保持不变,因此,用过 EF6 的开发人员都会对 EF Core 感到很熟悉。
关于EF6与EF Core的功能比较,查看官方文档: https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/#feature-comparison
1.2 EF Core数据库提供程序
Entity Framework Core 可通过数据库提供程序的插件库访问许多不同的数据库。EF Core 提供程序由多种源生成。 并非所有提供程序均作为 Entity Framework Core 项目的组成部分进行维护(Microsoft供应商提供),这里只列出几个常用的数据库提供程序:
NuGet 程序包 |
支持的数据库引擎 |
维护商/供应商 |
Microsoft.EntityFrameworkCore.SqlServer |
SQL Server 2008 及以上版本 |
EF Core 项目 (Microsoft) |
Pomelo.EntityFrameworkCore.MySql |
MySQL、MariaDB |
Pomelo Foundation 项目 |
Pomelo.EntityFrameworkCore.MyCat |
MyCAT 服务器 |
Pomelo Foundation 项目 |
MySql.Data.EntityFrameworkCore |
MySQL |
MySQL 项目 (Oracle) |
Devart.Data.Oracle.EFCore |
Oracle 9.2.0.4 及以上版本 |
DevArt |
Devart.Data.MySql.EFCore |
MySQL 5 及以上版本 |
DevArt |
关于EF Core数据库提供程序,查看官方文档 https://docs.microsoft.com/zh-cn/ef/core/providers/index#current-providers
1.3 应用程序添加数据库提供程序
EF Core 的大多数数据库提供程序都是作为 NuGet 包分发的。这意味着可使用命令行中的 dotnet
工具来安装它们(先安装.NET Core SDK),或者在 Visual Studio 中,使用 NuGet 包管理器控制台:
dotnet add package provider_package_name
-- NuGet
install-package provider_package_name
例如:在vs中使用NuGet安装数据库提供程序Microsoft.EntityFrameworkCore.SqlServer,如下所示:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
若要更新提供程序,使用 Update-Package
命令。若要指定特定版本,可以使用 -Version
修饰符。 例如,若要安装 EF Core 2.2.0 包,请将 -Version
2.2.0 追加到命令中。
-- 例如: 更新到指定版本的Package
PM> update-package Microsoft.EntityFrameworkCore.SqlServer -Pre -Version 3.0.-preview.18572.1
1.4 获取 Entity Framework Core 工具
要安装Entity Framework Core除了在Visual Studio中(下篇介绍),还可以使用 “.NET Core 命令行接口(CLI)” 工具可用于 Windows、Linux 或 macOS。 这些命令以 dotnet ef 开头。这些命令是对跨平台扩展dotnet命令,它是一部分的.NET Core SDK。 这些工具适用于.NET Core 项目。
首先安装最新.NET Core SDK,下载安装可以选择操作系统类型(Windows、Linux 或 macOS)。dotnet ef
命令包含在.NET Core SDK,但若要启用这些命令必须安装Microsoft.EntityFrameworkCore.Design
包
dotnet add package Microsoft.EntityFrameworkCore.Design
验证安装:运行以下命令以验证正确安装 EF Core CLI 工具,下图是在windows系统中:
关于.Net CLI工具,查看官方文档 https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/dotnet
关于.NET Core SDK安装地址: https://dotnet.microsoft.com/download
其它参考文献:
关于程序包管理器控制台
https://docs.microsoft.com/zh-cn/nuget/tools/package-manager-console
asp.net core 系列 19 EFCore介绍的更多相关文章
- asp.net core系列 39 Razor 介绍与详细示例
原文:asp.net core系列 39 Razor 介绍与详细示例 一. Razor介绍 在使用ASP.NET Core Web开发时, ASP.NET Core MVC 提供了一个新特性Razor ...
- asp.net core系列 46 Identity介绍
一. Identity 介绍 ASP.NET Core Identity是一个会员系统,可为ASP.NET Core应用程序添加登录功能.可以使用SQL Server数据库配置身份以存储用户名,密码和 ...
- asp.net core系列 66 Dapper介绍--Micro-ORM
一.概述 目前对于.net的数据访问ORM工具很多,EF和EF Core是一个重量级的框架.最近在搭建新的项目架构,来学习一下轻量级的数据访问ORM工具Dapper.Dapper支持SQL Serve ...
- 【目录】asp.net core系列篇
随笔分类 - asp.net core系列篇 asp.net core系列 68 Filter管道过滤器 摘要: 一.概述 本篇详细了解一下asp.net core filters,filter叫&q ...
- asp.net core系列 40 Web 应用MVC 介绍与详细示例
一. MVC介绍 MVC架构模式有助于实现关注点分离.视图和控制器均依赖于模型. 但是,模型既不依赖于视图,也不依赖于控制器. 这是分离的一个关键优势. 这种分离允许模型独立于可视化展示进行构建和测试 ...
- asp.net core系列 39 Web 应用Razor 介绍与详细示例
一. Razor介绍 在使用ASP.NET Core Web开发时, ASP.NET Core MVC 提供了一个新特性Razor. 这样开发Web包括了MVC框架和Razor框架.对于Razor来说 ...
- .Net Core 2.0生态(3):ASP.NET Core 2.0 特性介绍和使用指南
ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET ...
- 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)
黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...
- WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化
WPF中的常用布局 一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...
随机推荐
- caffe 根据txt生成多标签LMDB数据
1. 前提: 已经准备好train.txt, test.txt文件, 格式如下 此处有坑, 如果是windows下生成txt, 换行符为\r\n, 需要替换成 \n才能在linux运行. 可以使用se ...
- json转化技巧
如果用户是一级下拉菜单,二级联动,动态加载内容到二级菜单,并在下方内容处,随着用户选择的内容动态加载相应内容. 实现的方法其实很简单 select部分:一级菜单选择内容,ajax动态加载,因为内容固定 ...
- iOS 轻击、触摸和手势的检测
一.检测捏合手势( UIPinchGestureRecognizer): //设定一个实例变量存储手指之间的其起始距离 @property (assign, nonatomic) CGFloat i ...
- SI9000常用共面阻抗模型的解释
所谓的“共面”,即阻抗线和参考层在同一平面,即阻抗线被VCC/GND所包围, 周围的VCC/GND即为参考层. 相较于单端和差分阻抗模型,共面阻抗模型多了一个参数D1,即阻抗线和参 考层VCC/GND ...
- 展开被 SpringBoot 玩的日子 《 一 》入门篇
SpringBoot 已经是久闻大名了,因各种原因导致迟迟未展开学习SpringBoot,今天,我将会逐渐展开被SpringBoot 玩的历程,有兴趣的,可以跟我一起来~~~~~~~ 什么是sprin ...
- 刚学的vue.js的单一事件管理组件通信
第一次在博客园写的技术分享,写的不好的话各位大神多体谅,好啦进入主题 说说思路 首先 第一步,准备一个空的示例对象 var Event=new Vue(); 第二步,准备发送的数据 Event.$em ...
- python基础知识总结(一)
学完python很久了,一直想着写个学习总结,奈何懒癌晚期,现在才开始写.以下是我总结的一小部分python基础知识点的总结: 1.什么是解释型语言?什么是编译型编程语言? ''' 解释型语言:无需编 ...
- 在IDEA中spring程序可以正常运行,但IDE报错Could not autowire.
这个问题只会在使用xml文件配置bean时遇到,使用自动配置和java配置没有这种错误. 遇到这个问题首先要确定配置文件已经正确的放在了resources文件夹内,resources文件夹就是clas ...
- VMware手动添加centos7硬盘图文操作及分区超详细
先设置虚拟机 启动的虚拟机,新关机再设置 1.选择指定虚拟机,点击硬盘 2.虚拟机设置,点击左下角“添加” 3.硬件类型选择硬盘,点击下一步 4.添加硬件向导默认就行,下一步 5.选择磁盘,默认选中, ...
- 201771010126 王燕《面向对象程序设计(Java)》第十周学习总结
实验十 泛型程序设计技术 实验时间 2018-11-1 1.实验目的与要求 (1) 理解泛型概念: 泛型:也称参数化类型(parameterized type),就是在定义类.接口和方法时,通过类型 ...