Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。

一、什么是 Entity Framework Core 模型?

1、对于 EF Core,使用模型执行数据访问。 模型实体类和表示数据库会话的上下文对象构成。 上下文对象允许查询并保存数据。

2、EF 支持以下模型开发方法:

  • 从现有数据库生成模型。
  • 对模型手动编码,使其符合数据库。
  • 创建模型后,使用 EF 迁移从模型创建数据库。 模型发生变化时,迁移可让数据库不断演进。

二、安装 Entity Framework Core

1、Entity Framework Core (EF Core) 以 NuGet 包的形式提供。 应用程序所需的包取决于:

  • 所使用的数据库系统类型(SQL Server、SQLite 等)
  • 所需的 EF Core 功能

2、安装包的常规过程是:

  • 确定数据库提供程序并安装相应的包
  • 如果使用关系数据库提供程序,还需安装 Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.Relational。 这有助于确保使用一致的版本,同时也意味着 NuGet 会在新的包版本发布时通知你。
  • 或者确定所需的工具类型,并为此安装相应的包

3、总言之,要将 EF Core 添加到应用程序,请安装适用于要使用的数据库提供程序的 NuGet 包。

4、注意事项:

  • 如果要生成 ASP.NET Core 应用程序,不需要安装内存中和 SQL Server 提供程序。 这些提供程序随 EF Core 运行时一起包含在当前版本的 ASP.NET Core 中。
  • 要安装或更新 NuGet 包,可以使用 .NET Core 命令行界面 (CLI)、Visual Studio 包管理器对话框或 Visual Studio 包管理器控制台。
  • 用于 EF Core 的第三方提供程序通常不随 EF Core 运行发布修补程序版本。 若要将使用第三方提供程序的应用程序升级到 EF Core 的修补程序版本,可能需要添加对单独的 EF Core 运行时组件(如 Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.Relational)的直接引用。
  • 请务必安装 Microsoft 提供的所有 EF Core 包的同一版本。 例如,如果安装了 5.0.3 版本的 Microsoft.EntityFrameworkCore.SqlServer,则所有其他 Microsoft.EntityFrameworkCore.* 包也必须为 5.0.3 版本。
  • 此外,请确保所有外部包都与所使用的 EF Core 的版本兼容。 特别是,检查外部数据库提供程序是否支持你所使用的 EF Core 版本。 EF Core 的新主版本通常需要更新的数据库提供程序。

三、数据库提供程序

1、EF Core 通过使用“数据库提供程序”支持不同的数据库系统。 每个系统都有自己的数据库提供程序,而提供程序以 NuGet 包的形式提供。 应用程序应安装其中一个或多个提供程序包。

2、下表列出了常见的数据库提供程序。

数据库系统
SQL Server 和 SQL Azure Microsoft.EntityFrameworkCore.SqlServer
SQLite Microsoft.EntityFrameworkCore.Sqlite
Azure Cosmos DB Microsoft.EntityFrameworkCore.Cosmos
PostgreSQL Npgsql.EntityFrameworkCore.PostgreSQL
MySQL Pomelo.EntityFrameworkCore.MySql
EF Core 内存中数据库 Microsoft.EntityFrameworkCore.InMemory

四、扩展包

Microsoft 和第三方以 NuGet 包的形式发布了许多 EF Core 扩展。 常用包包括:

功能 附加依赖项
用于延迟加载和更改跟踪的代理 Microsoft.EntityFrameworkCore.Proxies Castle.Core
对 SQL Server 的空间支持 Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite NetTopologySuite 和 NetTopologySuite.IO.SqlServerBytes
对 SQLite 的空间支持 Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite NetTopologySuite 和 NetTopologySuite.IO.SpatiaLite
对 PostgreSQL 的空间支持 Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite NetTopologySuite 和 NetTopologySuite.IO.PostGIS(通过 Npgsql.NetTopologySuite)
对 MySQL 的空间支持 Pomelo.EntityFrameworkCore.MySql.NetTopologySuite NetTopologySuite

五、其他包

其他 EF Core 包作为数据库提供程序包的依赖项进行拉取。 但是,建议为这些包添加显式包引用,这样 NuGet 在发布新版本时会提供通知。

功能
EF Core 基本功能 Microsoft.EntityFrameworkCore
通用关系数据库功能 Microsoft.EntityFrameworkCore.Relational
用于 EF Core 特性等的轻型包。 Microsoft.EntityFrameworkCore.Abstractions
EF Core 使用情况的 Roslyn 代码分析器 Microsoft.EntityFrameworkCore.Analyzers
没有原生 SQLite 依赖项的 EF Core SQLite 提供程序 Microsoft.EntityFrameworkCore.Sqlite.Core

六、EF Core 版本和计划

Release 目标 Framework 支持截止时间
EF Core 6.0 .NET 6 2024 年 11 月 8 日 (LTS)
EF Core 5.0 .NET Standard 2.1 2022 年 5 月 10 日过期
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 过期时间:2021 年 8 月 21 日*
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 支持的 .NET 实现

下表提供了每个 .NET 实现的指南:

EF Core 3.1 5.0 6.0
.NET & .NET Core 3.1 5.0 6.0
.NET Standard 2.0 2.1  
.NET Framework 4.7.2    
Mono 5.4 6.4  
Xamarin.iOS 10.14 12.16 (使用 .NET 6)
Xamarin.Mac 3.8 5.16 (使用 .NET 6)
Xamarin.Android 8.0 10.0 (使用 .NET 6)
UWP 10.0.16299   (使用Windows 应用 SDK)
Unity 2018 年 1 月 2021.2 TBD
Tizen 4.0 6.0 (使用 .NET 6)

----------------------------------------------本篇文章到此结束-------------------------------------------

001从零开始入门Entity Framework Core——基础知识的更多相关文章

  1. 002从零开始入门Entity Framework Core——DbContext生存期、配置和初始化

    阅读须知:本文为入门介绍.指引文章,所示代码皆为最简易(或仅为实现功能)的演示示例版本,不一定切实符合个人(企业)实际开发需求. 一.DbContext生存期 DbContext 的生存期从创建实例时 ...

  2. Entity Framework Core 入门(2)

    安装 EF Core 将 EF Core 添加到不同平台和常用 IDE 中的应用程序的所需步骤汇总. 分步入门教程 无需具备 Entity Framework Core 或任何特定 IDE 的原有知识 ...

  3. Entity Framework Core 2.0 入门简介

    不多说废话了, 直接切入正题. EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle. EFCore 2.0新的东西: 查询: EF.Fu ...

  4. Entity Framework Core(EF Core) 最简单的入门示例

    目录 概述 基于 .NET Core 的 EF Core 入门 创建新项目 更改当前目录 安装 Entity Framework Core 创建模型 创建数据库 使用模型 基于 ASP.NET Cor ...

  5. Entity Framework Core 2.0 入门

    该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide ...

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

    一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...

  7. Entity Framework Core 中文入门文档

    点击链接查看文档: Entity Framework Core 中文入门文档

  8. 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射

    使用Code First建模自引用关系笔记   原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...

  9. ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...

随机推荐

  1. 搭建uipath

    我对windows也不太熟,也是第一次安装Uipath Orchestrator,希望有问题指出一起交流,可以留言,Uipath中文qq交流群:4656303241. 下载镜像 windows ser ...

  2. Python简单实现自动评论、自动点赞、自动关注脚本

    一些哔哔: 今天的这个脚本,是一个别人发的外包,交互界面的代码就不在这里说了,但是可以分享下自动评论.自动点赞.自动关注.采集评论和视频的数据是如何实现的 开发环境 python 3.8 运行代码py ...

  3. NC202492 仓库选址

    NC202492 仓库选址 题目 题目描述 牛能在某小城有了固定的需求,为了节省送货的费用,他决定在小城里建一个仓库,但是他不知道选在哪里,可以使得花费最小. 给出一个 \(m \times n\) ...

  4. 30m精度土壤类型、土壤质地、土壤有机质、土壤PH、土壤氮磷钾

    ​数据下载链接:数据下载链接 引言 全国土壤类型.质地.养分及变化等信息产品分为土壤类型数据.土壤质地数据.土壤养分数据及土壤变化数据等.该类产品是基于野外调查和实地采样,结合历史数据,建立全国土壤类 ...

  5. zenmap安装

    发现最新版的KALI不带zenmap了,下面是安装步骤: 安装包转换工具:sudo apt-get install alien fakeroot -y 下载并转换:https://nmap.org/d ...

  6. Linux快捷方式创建模板

    1.创建快捷方式文件 sudo gedit /usr/share/applications/Navicat.desktop 模板: [Desktop Entry] Name=Navicat Exec= ...

  7. Eclipse Ctrl+鼠标左键不能查看源代码

    查询当前项目的使用的java包版本. 找到java包相应版本的安装路径. 在 "Source Attachment"对话框下,选择"External location&q ...

  8. 基于yarn1.x的monorepo实践分享

    背景介绍 几天前,晓东船长微信问我,你们团队有没有monorepo的实践,我很遗憾的告诉他没有,但这在我心里播下了一颗探索的种子,刚好最近老总要搞内蒙古的新项目,我和另一个前端兄弟组成双枪敢死队进行保 ...

  9. 洛谷 P2073 送花 treap 无指针

    看了那么多题解都没做对,结果今早上按自己的思路和模板做了做,然后过了. 平衡树裸题 直接上代码: #include<bits/stdc++.h> #define rint register ...

  10. 数据结构(C语言版)严蔚敏->排序

    @ 目录 1. 插入排序 1.1 直接插入排序 1.2 折半插入排序 1.3 希尔排序(Shell Sort) 2.交换排序 2.1 冒泡排序 2.2 快速排序 3. 选择排序 3.1 简单选择排序 ...