Entity Framework Core 系列教程
翻译自:

https://www.entityframeworktutorial.net/efcore/entity-framework-core.aspx

Entity Framework Core简介

简介

Entity Framework Core(EF Core)是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。
EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。
EF Core是对象/关系映射(O / RM)框架。它是对ADO.NET的增强,它为开发人员提供了一种自动机制,用于访问和存储数据库中的数据。
EF Core在与.NET Core应用程序一起使用。但是,它也可以与基于标准.NET 4.5+框架的应用程序一起使用。
下图列出了EF Core支持的应用程序类型,.NET Framework和操作系统:

EF Core版本历史记录

EF Core目前版本是3.1,是长期支持版,适合做项目开发。

发行版本 目标框架 支持截止时间
EF Core 3.1 NET Standard 2.0 2022 年 12 月 3 日 (LTS)
EF Core 3.0 .NET Standard 2.1 2020 年 3 月 3 日
EF Core 2.2 .NET Standard 2.0 过期时间:2019 年 12 月 23 日
EF Core 2.1 .NET Standard 2.0 021 年 8 月 21 日 (LTS)
EF Core 2.0 .NET Standard 2.0 过期时间:2018 年 10 月 1 日
EF Core 1.1 .NET Standard 1.3 过期时间:2019 年 6 月 27 日
EF Core 1.0 .NET Standard 1.3 过期时间:2019 年 6 月 27 日

EF Core GitHub源码:https://github.com/aspnet/EntityFrameworkCore
EF Core Roadmap:docs.microsoft.com/zh-cn/ef/core/what-is-new/roadmap
EF Core’s issues:https://github.com/aspnet/EntityFrameworkCore/issues
EF Core官方文档:https://docs.microsoft.com/ef/core

为什么使用EF Core

  1. 生产力
  2. 支持很多数据库
  3. 可以使用Linq
  4. 注重领域(Domain),而不是数据库

EF Core 开发方法

EF Core支持两种开发方法:1)Code-First(代码优先); 2)Database-First(数据库优先)。 EF Core主要针对Code-First方法,很少提供对Database-First方法的支持,因为从EF Core 2.0开始不支持可视化的DB模型设计器或向导。

在Code-First(方法中,EF Core API会根据你的代码中的领域模型中提供的约定和配置,使用迁移来创建数据库和表。此方法在领域驱动设计(DDD)中很有用。

在Database-First方法中,EF Core API使用EF Core命令基于现有数据库创建领域模型和数据库上下文(DbContext)类。由于它不支持可视设计器或向导,因此在EF Core中的支持有限。

EF Core vs EF 6

EF Core是主要用于.NET Core应用程序,基于Entity Framework的新版本和改进版本,EF Core也支持.NET Framework应用程序。
Entity Framework 6 (EF6) 是专为 .NET Framework 设计的对象关系映射器,但支持 .NET Core。

EF Core继续支持与EF 6相同的以下功能和概念:

  • DbContext & DbSet
  • Data Model
  • Querying using Linq-to-Entities
  • Change Tracking
  • SaveChanges
  • Migrations

EF Core将逐步包括EF 6的大多数功能。但是,EF Core 2.0中不支持EF 6的某些功能,例如:

  • EDMX /模型的图形可视化
  • 实体数据模型向导(用于DB-First方法)
  • ObjectContext API
  • Querying using Entity SQL.
  • 使用Entity SQLL查询
  • 自动迁移
  • 继承:每个类型一个表 (TPT)
  • 继承:每个具体类一个表 (TPC)
  • 多对多,无联接实体
  • 实体拆分
  • 空间数据(Spatial Data)
  • 延迟加载关联数据
  • 使用DbContext存储过程映射以进行CUD操作
  • 种子数据(Seed data)
  • 自动迁移(Automatic migration)

EF Core包含EF 6.x不支持的以下新功能:

  • 关系配置更方便
  • 增删改批处理操作
  • 为测试程序提供的In-memory provider
  • 支持IoC(控制反转)
  • 唯一键的约束
  • 投影属性
  • Alternate keys(备用键)
  • 全局查询过滤器
  • 字段映射
  • DbContext连接池
  • 为处理断开实体图提供更好的模式

在此处了解有关EF Core和EF 6差异的更多信息。

https://docs.microsoft.com/en-us/ef/efcore-and-ef6/features

EF Core Database Providers

EF Core使用Provider(提供者)程序模型来访问许多不同的数据库。使用不同的数据库需要在应用程序中添加相应的Database Provider NuGet软件包。
下表列出了EF Core的数据库提供程序和NuGet程序包。

数据库 NuGet 包
SQL Server Microsoft.EntityFrameworkCore.SqlServer
MySQL MySql.Data.EntityFrameworkCore
PostgreSQL Microsoft.EntityFrameworkCore.SqlServer
SQLite Microsoft.EntityFrameworkCore.SQLite
SQL Compact EntityFrameworkCore.SqlServerCompact40
In-memory Microsoft.EntityFrameworkCore.InMemory

其他的Database Provider参考:

https://docs.microsoft.com/zh-cn/ef/core/providers/index?tabs=dotnet-core-cli

下一章,我们将学习安装EF Core。

Entity Framework Core系列教程-1相关推荐

  1. Entity Framework Core系列教程-25-Entity Framework Core日志

    Entity Framework Core日志 我们经常需要在EF Core中记录SQL并更改跟踪信息以进行调试. EF Core日志记录自动与.NET Core的日志记录机制集成.因此,在隐含使用E ...

  2. Entity Framework Core系列教程-23-原生SQL查询

    在Entity Framework Core中执行原生SQL查询 Entity Framework Core提供了DbSet.FromSql()方法来对基础数据库执行原始SQL查询,并将结果作为实体对 ...

  3. Entity Framework Core系列教程-3为现有数据库生成实体模型

    在Entity Framework Core中为现有数据库创建模型 在这里,您将学习如何在Entity Framework Core中为现有数据库创建上下文和实体类.为现有数据库创建实体和上下文类称为 ...

  4. 手把手引进门之 ASP.NET Core Entity Framework Core(官方教程翻译版 版本3.2.5)

    以下是手把手引进门教程,基于 ASP.NET Core, Entity Framework Core ,ABP 框架 创建Web 应用, PS: 自带自动的测试模块哦. 样例下载 (上 github  ...

  5. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    ASP.NET Core 入门教程 8.ASP.NET Core + Entity Framework Core 数据访问入门 原文:ASP.NET Core 入门教程 8.ASP.NET Core ...

  6. 使用 ASP.NET Core, Entity Framework Core 和 ABP 创建N层Web应用 第二篇

    介绍 这是"使用 ASP.NET Core ,Entity Framework Core 和 ASP.NET Boilerplate 创建N层 Web 应用"系列文章的第二篇.以下 ...

  7. 全球首发免费的MySql for Entity Framework Core

    Background 一时兴起,想实现.NET Core下的MySQL ADO层和与Entity Framework Core对接,同时也是非常鄙视某厂商借着目前Oracle官方没有对.NET Cor ...

  8. ASP.NET Core 和 EF Core系列教程——CRUD

    ASP.NET Core 和 EF Core系列教程--CRUD (2 / 10) CRUD 为创建.读取.更新.删除的英文首字母的缩写 作者:Tom Dykstra和Rick Anderson Co ...

  9. Entity Framework Core 练习参考

    项目地址:https://gitee.com/dhclly/IceDog.EFCore 项目介绍 对 Microsoft EntityFramework Core 框架的练习测试 参考文档教程 官方文 ...

  10. 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用

    写在前面 Entity Framework Core (EF Core) 是 .NET 平台流行的对象关系映射(ORM)框架.虽然 .NET 平台中 ORM 框架有很多,比如 Dapper.NHibe ...

最新文章

  1. Unity中对象池的使用
  2. java nifty_Java NiftyDialogBuilder類代碼示例
  3. 数据库-设置mysql编码
  4. mac 没有所有开发者_为什么开发人员应该像产品所有者那样思考
  5. CodeForces - 766C - Mahmoud and a Message dp
  6. 学成在线--13.RabbitMQ工作模式
  7. 如何让小程序页面更顺滑_小程序怎样让wx.navigateBack更好用的方法实现
  8. Nginx+FastCGI支持HTTPS部署过程详述
  9. 整理C# 二进制,十进制,十六进制 互转
  10. python filter
  11. VI.Multidocument Transactions
  12. GARFIELD@10-21-2004
  13. 公众号openid能做用户识别_四川养老公众号开发哪里能做
  14. pandownload 替代品_Pandownload倒下了,还有它,又一款百度云下载神器,10M/s
  15. 苹果电脑上几款不错的图片浏览管理工具
  16. python应纳税额计算公式_起征点上调至5000后,最新、最简个税计算Excel公式来了!...
  17. 国产时钟芯片应用探讨,CLB2305对标CY2305, CLB30110兼容IDT:8L30110,TI:CDCLVC1310
  18. java getbean不同实现_JavaBean的属性可读写,编写时set方法和get方法必须配对。
  19. 一点点读懂regulator(三)
  20. 1.《阿西莫夫:机器人短篇全集》

热门文章

  1. EPLAN小知识——如何在费斯托(FESTO)官网下载EPLAN部件
  2. skype安卓手机版_安卓手机版电视直播播放器
  3. sprint演示会议
  4. iris流程图_IRIS项目管理流程
  5. 计算机网络实验:IP协议层分析
  6. 图像质量评价(IQA)综述
  7. 工业相机的50个知识点
  8. 全国计算机二级证书NO00000,计算机二级成绩查询
  9. Google奥运会彩蛋,你确定不来参加一下吗?
  10. 使用Mediapipe制作抖音特效